Esempio n. 1
0
        public override void LoadAnimations()
        {
            Texture2D spriteSheet = AssetManager.Instance.LoadRawTexture2D($"{ContentGlobals.SpriteRoot}/Characters/Watt.png");

            AnimManager.SetSpriteSheet(spriteSheet);

            AnimManager.AddAnimation(AnimationGlobals.IdleName, new LoopAnimation(null, AnimationGlobals.InfiniteLoop,
                                                                                  new Animation.Frame(new Rectangle(102, 149, 34, 33), 70d, new Vector2(0, 0)),
                                                                                  new Animation.Frame(new Rectangle(151, 149, 33, 34), 70d, new Vector2(1, 1)),
                                                                                  new Animation.Frame(new Rectangle(103, 230, 34, 31), 70d, new Vector2(1, 0))));
            AnimManager.AddAnimation(AnimationGlobals.PlayerBattleAnimations.DangerName, new LoopAnimation(null, AnimationGlobals.InfiniteLoop,
                                                                                                           new Animation.Frame(new Rectangle(102, 149, 34, 33), 70d, new Vector2(0, 0)),
                                                                                                           new Animation.Frame(new Rectangle(151, 149, 33, 34), 70d, new Vector2(1, 1)),
                                                                                                           new Animation.Frame(new Rectangle(103, 230, 34, 31), 70d, new Vector2(1, 0))));

            AnimManager.AddAnimation(AnimationGlobals.HurtName, new Animation(null,
                                                                              new Animation.Frame(new Rectangle(199, 189, 33, 34), 70d),
                                                                              new Animation.Frame(new Rectangle(6, 230, 36, 32), 70d),
                                                                              new Animation.Frame(new Rectangle(53, 227, 36, 36), 70d, new Vector2(-1, -1))));
            AnimManager.AddAnimation(AnimationGlobals.SpikedTipHurtName, new Animation(null,
                                                                                       new Animation.Frame(new Rectangle(199, 189, 33, 34), 70d),
                                                                                       new Animation.Frame(new Rectangle(6, 230, 36, 32), 70d),
                                                                                       new Animation.Frame(new Rectangle(53, 227, 36, 36), 70d, new Vector2(-1, -1))));

            AnimManager.AddAnimation(AnimationGlobals.DeathName, new Animation(null,
                                                                               new Animation.Frame(new Rectangle(6, 230, 36, 32), 1000d)));

            AnimManager.AddAnimation(AnimationGlobals.RunningName, new LoopAnimation(null, AnimationGlobals.InfiniteLoop,
                                                                                     new Animation.Frame(new Rectangle(102, 149, 34, 33), 50d, new Vector2(0, 0)),
                                                                                     new Animation.Frame(new Rectangle(151, 149, 33, 34), 50d, new Vector2(1, 1)),
                                                                                     new Animation.Frame(new Rectangle(103, 230, 34, 31), 50d, new Vector2(1, 0))));

            AnimManager.AddAnimation(AnimationGlobals.PlayerBattleAnimations.ChoosingActionName, new LoopAnimation(null, AnimationGlobals.InfiniteLoop,
                                                                                                                   new Animation.Frame(new Rectangle(7, 269, 33, 34), 70d, new Vector2(1, 0)),
                                                                                                                   new Animation.Frame(new Rectangle(150, 229, 34, 33), 70d, new Vector2(0, -1)),
                                                                                                                   new Animation.Frame(new Rectangle(55, 270, 34, 31), 70d, new Vector2(1, -1))));
            AnimManager.AddAnimation(AnimationGlobals.PlayerBattleAnimations.DangerChoosingActionName, new LoopAnimation(null, AnimationGlobals.InfiniteLoop,
                                                                                                                         new Animation.Frame(new Rectangle(7, 269, 33, 34), 70d, new Vector2(1, 0)),
                                                                                                                         new Animation.Frame(new Rectangle(150, 229, 34, 33), 70d, new Vector2(0, -1)),
                                                                                                                         new Animation.Frame(new Rectangle(55, 270, 34, 31), 70d, new Vector2(1, -1))));

            AnimManager.AddAnimation(AnimationGlobals.StatusBattleAnimations.DizzyName, new LoopAnimation(null, AnimationGlobals.InfiniteLoop,
                                                                                                          new Animation.Frame(new Rectangle(103, 112, 34, 28), 70d),
                                                                                                          new Animation.Frame(new Rectangle(199, 111, 33, 31), 70d),
                                                                                                          new Animation.Frame(new Rectangle(7, 152, 34, 28), 70d),
                                                                                                          new Animation.Frame(new Rectangle(150, 111, 34, 30), 70d, new Vector2(-1, 0))));
            AnimManager.AddAnimation(AnimationGlobals.StatusBattleAnimations.ConfusedName, new LoopAnimation(null, AnimationGlobals.InfiniteLoop,
                                                                                                             new Animation.Frame(new Rectangle(103, 112, 34, 28), 70d),
                                                                                                             new Animation.Frame(new Rectangle(199, 111, 33, 31), 70d),
                                                                                                             new Animation.Frame(new Rectangle(7, 152, 34, 28), 70d),
                                                                                                             new Animation.Frame(new Rectangle(150, 111, 34, 30), 70d, new Vector2(-1, 0))));
            AnimManager.AddAnimation(AnimationGlobals.StatusBattleAnimations.InjuredName, new LoopAnimation(null, AnimationGlobals.InfiniteLoop,
                                                                                                            new Animation.Frame(new Rectangle(103, 112, 34, 28), 70d),
                                                                                                            new Animation.Frame(new Rectangle(199, 111, 33, 31), 70d),
                                                                                                            new Animation.Frame(new Rectangle(7, 152, 34, 28), 70d),
                                                                                                            new Animation.Frame(new Rectangle(150, 111, 34, 30), 70d, new Vector2(-1, 0))));
            AnimManager.AddAnimation(AnimationGlobals.StatusBattleAnimations.SleepName, new LoopAnimation(null, AnimationGlobals.InfiniteLoop,
                                                                                                          new Animation.Frame(new Rectangle(199, 230, 34, 31), 150d),
                                                                                                          new Animation.Frame(new Rectangle(150, 189, 34, 33), 150d, new Vector2(-1, 0))));
        }
        public SpikedGoomba()
        {
            Name        = "Spiked Goomba";
            BattleStats = new Stats(1, 2, 0, 1, 0);

            EntityProperties.AddPhysAttribute(Enumerations.PhysicalAttributes.Spiked);
            EntityProperties.AddPayback(new StatusGlobals.PaybackHolder(StatusGlobals.PaybackTypes.Constant, Enumerations.PhysicalAttributes.Spiked,
                                                                        Enumerations.Elements.Sharp, new Enumerations.ContactTypes[] { Enumerations.ContactTypes.TopDirect },
                                                                        new Enumerations.ContactProperties[] { Enumerations.ContactProperties.None },
                                                                        Enumerations.ContactResult.Failure, Enumerations.ContactResult.Failure, 1, null));

            Texture2D spriteSheet = AssetManager.Instance.LoadRawTexture2D($"{ContentGlobals.SpriteRoot}/Enemies/SpikedGoomba.png");

            AnimManager.SetSpriteSheet(spriteSheet);

            AnimManager.AddAnimation(AnimationGlobals.IdleName, new ReverseAnimation(spriteSheet, AnimationGlobals.InfiniteLoop,
                                                                                     new Animation.Frame(new Rectangle(34, 153, 28, 39), 1000d),
                                                                                     new Animation.Frame(new Rectangle(67, 152, 26, 40), 150d, new Vector2(0, -1)),
                                                                                     new Animation.Frame(new Rectangle(67, 110, 26, 42), 1000d, new Vector2(0, -2))));
            AnimManager.AddAnimation(AnimationGlobals.HurtName, new Animation(spriteSheet,
                                                                              new Animation.Frame(new Rectangle(32, 68, 31, 36), 500d),
                                                                              new Animation.Frame(new Rectangle(128, 108, 31, 36), 500d)));
            AnimManager.AddAnimation(AnimationGlobals.DeathName, new Animation(spriteSheet, new Animation.Frame(new Rectangle(128, 108, 31, 36), 1000d)));

            AnimManager.AddAnimation(AnimationGlobals.RunningName, new ReverseAnimation(spriteSheet, AnimationGlobals.InfiniteLoop,
                                                                                        new Animation.Frame(new Rectangle(98, 153, 29, 39), 150d),
                                                                                        new Animation.Frame(new Rectangle(34, 153, 28, 39), 100d),
                                                                                        new Animation.Frame(new Rectangle(34, 110, 30, 42), 150d)));
        }
        public override void LoadAnimations()
        {
            Texture2D spriteSheet = AssetManager.Instance.LoadRawTexture2D($"{ContentGlobals.SpriteRoot}/Enemies/KoopaTroopa.png");

            AnimManager.SetSpriteSheet(spriteSheet);

            AnimManager.AddAnimation(AnimationGlobals.IdleName, new Animation(spriteSheet, new Animation.Frame(new Rectangle(9, 117, 33, 50), 1000d)));
            AnimManager.AddAnimation(AnimationGlobals.RunningName, new ReverseAnimation(spriteSheet, AnimationGlobals.InfiniteLoop,
                                                                                        new Animation.Frame(new Rectangle(247, 4, 40, 48), 200d),
                                                                                        new Animation.Frame(new Rectangle(248, 61, 34, 49), 200d),
                                                                                        new Animation.Frame(new Rectangle(201, 62, 33, 49), 200d)));

            AnimManager.AddAnimation(AnimationGlobals.HurtName, new Animation(spriteSheet,
                                                                              new Animation.Frame(new Rectangle(102, 115, 39, 44), 250d),
                                                                              new Animation.Frame(new Rectangle(200, 115, 36, 43), 250d)));
            AnimManager.AddAnimation(AnimationGlobals.DeathName, new Animation(spriteSheet,
                                                                               new Animation.Frame(new Rectangle(244, 117, 40, 42), 300d)));

            AnimManager.AddAnimation(AnimationGlobals.ShelledBattleAnimations.EnterShellName, new Animation(spriteSheet,
                                                                                                            new Animation.Frame(new Rectangle(193, 245, 27, 26), 70d),
                                                                                                            new Animation.Frame(new Rectangle(34, 278, 26, 24), 70d)));
            AnimManager.AddAnimation(AnimationGlobals.ShelledBattleAnimations.ShellSpinName, new LoopAnimation(spriteSheet, AnimationGlobals.InfiniteLoop,
                                                                                                               new Animation.Frame(new Rectangle(2, 246, 28, 25), 100d),
                                                                                                               new Animation.Frame(new Rectangle(33, 246, 30, 25), 100d),
                                                                                                               new Animation.Frame(new Rectangle(2, 278, 28, 25), 100d),
                                                                                                               new Animation.Frame(new Rectangle(162, 246, 28, 25), 100d),
                                                                                                               new Animation.Frame(new Rectangle(129, 246, 30, 25), 100d),
                                                                                                               new Animation.Frame(new Rectangle(322, 214, 28, 25), 100d)));
            AnimManager.AddAnimation(AnimationGlobals.ShelledBattleAnimations.ExitShellName, new Animation(spriteSheet,
                                                                                                           new Animation.Frame(new Rectangle(34, 278, 26, 24), 70d),
                                                                                                           new Animation.Frame(new Rectangle(193, 245, 27, 26), 70d)));
            AnimManager.AddAnimation(AnimationGlobals.ShelledBattleAnimations.FlippedName, new LoopAnimation(spriteSheet, AnimationGlobals.InfiniteLoop,
                                                                                                             new Animation.Frame(new Rectangle(5, 216, 53, 23), 300d),
                                                                                                             new Animation.Frame(new Rectangle(68, 209, 54, 30), 300d)));
        }
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="marioStats">Mario's stats</param>
        public BattleMario(MarioStats marioStats) : base(marioStats)
        {
            Name       = "Mario";
            EntityType = Enumerations.EntityTypes.Player;
            PlayerType = Enumerations.PlayerTypes.Mario;

            MStats = marioStats;

            #region Initialize Animations

            Texture2D spriteSheet = AssetManager.Instance.LoadAsset <Texture2D>($"{ContentGlobals.SpriteRoot}/Characters/Mario");
            AnimManager.SetSpriteSheet(spriteSheet);

            AnimManager.AddAnimation(AnimationGlobals.IdleName, new Animation(spriteSheet, new Animation.Frame(new Rectangle(228, 918, 29, 51), 1000d)));
            AnimManager.AddAnimation(AnimationGlobals.RunningName, new ReverseAnimation(spriteSheet, AnimationGlobals.InfiniteLoop,
                                                                                        new Animation.Frame(new Rectangle(228, 918, 29, 51), 30d),
                                                                                        new Animation.Frame(new Rectangle(228, 861, 29, 49), 30d),
                                                                                        new Animation.Frame(new Rectangle(68, 1056, 31, 48), 30d)));
            AnimManager.AddAnimation(AnimationGlobals.HurtName, new Animation(spriteSheet, new Animation.Frame(new Rectangle(596, 554, 42, 44), 1000d)));
            AnimManager.AddAnimation(AnimationGlobals.DeathName, new Animation(spriteSheet, new Animation.Frame(new Rectangle(57, 1022, 53, 26), 1000d)));


            AnimManager.AddAnimation(AnimationGlobals.MarioBattleAnimations.HammerPickupName, new Animation(spriteSheet,
                                                                                                            new Animation.Frame(new Rectangle(173, 664, 30, 49), 100d),
                                                                                                            new Animation.Frame(new Rectangle(174, 607, 29, 50), 100d),
                                                                                                            new Animation.Frame(new Rectangle(340, 421, 32, 46), 200d)));
            AnimManager.AddAnimation(AnimationGlobals.MarioBattleAnimations.HammerWindupName, new LoopAnimation(spriteSheet, AnimationGlobals.InfiniteLoop,
                                                                                                                new Animation.Frame(new Rectangle(341, 9, 36, 50), 150d),
                                                                                                                new Animation.Frame(new Rectangle(341, 64, 38, 50), 150d)));
            AnimManager.AddAnimation(AnimationGlobals.MarioBattleAnimations.HammerSlamName, new Animation(spriteSheet,
                                                                                                          new Animation.Frame(new Rectangle(334, 319, 42, 50), 200d),
                                                                                                          new Animation.Frame(new Rectangle(340, 166, 32, 44), 300d)));
            AnimManager.AddAnimation(AnimationGlobals.VictoryName, new Animation(spriteSheet, new Animation.Frame(new Rectangle(447, 281, 42, 50), 1000d)));

            AnimManager.AddAnimation(AnimationGlobals.JumpMissName, new Animation(spriteSheet,
                                                                                  new Animation.Frame(new Rectangle(444, 499, 45, 39), 700d),
                                                                                  new Animation.Frame(new Rectangle(499, 536, 31, 42), 100d),
                                                                                  new Animation.Frame(new Rectangle(499, 487, 31, 43), 100d),
                                                                                  new Animation.Frame(new Rectangle(499, 438, 31, 44), 100d)));

            AnimManager.AddAnimation(AnimationGlobals.SpikedTipHurtName, new LoopAnimation(spriteSheet, 10,
                                                                                           new Animation.Frame(new Rectangle(393, 450, 38, 52), 30d),
                                                                                           new Animation.Frame(new Rectangle(393, 385, 38, 55), 30d)));

            AnimManager.AddAnimation(AnimationGlobals.PlayerBattleAnimations.ChoosingActionName, new Animation(spriteSheet,
                                                                                                               new Animation.Frame(new Rectangle(402, 569, 34, 51), 30d)));

            AnimManager.AddAnimation(AnimationGlobals.PlayerBattleAnimations.GuardName, new Animation(spriteSheet,
                                                                                                      new Animation.Frame(new Rectangle(337, 908, 35, 41), 700d)));

            AnimManager.AddAnimation(AnimationGlobals.StatusBattleAnimations.StoneName, new Animation(spriteSheet, new Animation.Frame(new Rectangle(66, 859, 35, 41), 0d)));

            AnimManager.AddAnimation(AnimationGlobals.PlayerBattleAnimations.SuperguardName, new Animation(spriteSheet,
                                                                                                           new Animation.Frame(new Rectangle(392, 335, 42, 45), 700d)));

            AnimManager.AddAnimation(AnimationGlobals.PlayerBattleAnimations.StarSpecialName, new Animation(spriteSheet,
                                                                                                            new Animation.Frame(new Rectangle(449, 222, 40, 53), 700d)));

            #endregion
        }
Esempio n. 5
0
        public override void LoadAnimations()
        {
            Texture2D spriteSheet = AssetManager.Instance.LoadRawTexture2D($"{ContentGlobals.SpriteRoot}/Enemies/Gulpit.png");

            AnimManager.SetSpriteSheet(spriteSheet);

            AnimManager.AddAnimation(AnimationGlobals.IdleName, new LoopAnimation(spriteSheet, AnimationGlobals.InfiniteLoop,
                                                                                  new Animation.Frame(new Rectangle(152, 225, 64, 70), 600d),
                                                                                  new Animation.Frame(new Rectangle(376, 2, 64, 69), 600d)));
            AnimManager.AddAnimation(AnimationGlobals.RunningName, new ReverseAnimation(spriteSheet, AnimationGlobals.InfiniteLoop,
                                                                                        new Animation.Frame(new Rectangle(372, 225, 69, 68), 250d),
                                                                                        new Animation.Frame(new Rectangle(376, 2, 64, 69), 250d),
                                                                                        new Animation.Frame(new Rectangle(485, 155, 66, 68), 250d)));
            AnimManager.AddAnimation(AnimationGlobals.HurtName, new Animation(spriteSheet,
                                                                              new Animation.Frame(new Rectangle(146, 164, 71, 59), 200d),
                                                                              new Animation.Frame(new Rectangle(480, 7, 70, 64), 200d)));
            AnimManager.AddAnimation(AnimationGlobals.DeathName, new Animation(spriteSheet,
                                                                               new Animation.Frame(new Rectangle(480, 7, 70, 64), 500d)));

            AnimManager.AddAnimation(AnimationGlobals.GulpitBattleAnimations.LickName, new Animation(spriteSheet,
                                                                                                     new Animation.Frame(new Rectangle(370, 155, 70, 68), 300d),
                                                                                                     new Animation.Frame(new Rectangle(247, 229, 84, 66), 300d),
                                                                                                     new Animation.Frame(new Rectangle(449, 226, 105, 69), 300d),
                                                                                                     new Animation.Frame(new Rectangle(37, 1, 68, 78), 300d)));
            AnimManager.AddAnimation(AnimationGlobals.GulpitBattleAnimations.SpitRockName, new Animation(spriteSheet,
                                                                                                         new Animation.Frame(new Rectangle(246, 305, 83, 62), 200d, new Vector2(-9, 4)),
                                                                                                         new Animation.Frame(new Rectangle(8, 298, 96, 69), 200d, new Vector2(-16, 0)),
                                                                                                         new Animation.Frame(new Rectangle(151, 297, 65, 70), 200d, new Vector2(-1, 0)),
                                                                                                         new Animation.Frame(new Rectangle(41, 224, 63, 71), 1000d, new Vector2(1, -1)),
                                                                                                         new Animation.Frame(new Rectangle(148, 4, 69, 67), 300d, new Vector2(-2, 1))));
        }
Esempio n. 6
0
        public override void LoadAnimations()
        {
            Texture2D spriteSheet = AssetManager.Instance.LoadRawTexture2D($"{ContentGlobals.SpriteRoot}/Enemies/Gulpit.png");

            AnimManager.SetSpriteSheet(spriteSheet);

            //The animations differ between the different sizes of rocks
            //They have only idle and death animations
            if (BigRock == false)
            {
                AnimManager.AddAnimation(AnimationGlobals.IdleName, new Animation(spriteSheet, new Animation.Frame(new Rectangle(59, 378, 26, 21), 1500d)));
                AnimManager.AddAnimation(AnimationGlobals.DeathName, new Animation(spriteSheet,
                                                                                   new Animation.Frame(new Rectangle(1, 370, 45, 37), 80d),
                                                                                   new Animation.Frame(new Rectangle(340, 299, 42, 32), 80d),
                                                                                   new Animation.Frame(new Rectangle(392, 299, 32, 30), 80d)));
            }
            else
            {
                AnimManager.AddAnimation(AnimationGlobals.IdleName, new Animation(spriteSheet, new Animation.Frame(new Rectangle(534, 301, 34, 29), 1500d)));
                AnimManager.AddAnimation(AnimationGlobals.DeathName, new Animation(spriteSheet,
                                                                                   new Animation.Frame(new Rectangle(483, 298, 44, 37), 80d),
                                                                                   new Animation.Frame(new Rectangle(437, 300, 40, 35), 80d),
                                                                                   new Animation.Frame(new Rectangle(1, 370, 45, 37), 80d),
                                                                                   new Animation.Frame(new Rectangle(340, 299, 42, 32), 80d),
                                                                                   new Animation.Frame(new Rectangle(392, 299, 32, 30), 80d)));
            }
        }
Esempio n. 7
0
        public Goomba() : base(new Stats(1, 2, 0, 0, 0))
        {
            Name = "Goomba";

            AIBehavior = new GoombaAI(this);

            EntityProperties.AddStatusProperty(Enumerations.StatusTypes.Sleep, new StatusPropertyHolder(100, 0));
            EntityProperties.AddStatusProperty(Enumerations.StatusTypes.Stop, new StatusPropertyHolder(110, 0));
            EntityProperties.AddStatusProperty(Enumerations.StatusTypes.Dizzy, new StatusPropertyHolder(100, 0));
            EntityProperties.AddStatusProperty(Enumerations.StatusTypes.DEFDown, new StatusPropertyHolder(100, 0));
            EntityProperties.AddStatusProperty(Enumerations.StatusTypes.Poison, new StatusPropertyHolder(100, 0));
            EntityProperties.AddStatusProperty(Enumerations.StatusTypes.Confused, new StatusPropertyHolder(100, 0));

            Texture2D spriteSheet = AssetManager.Instance.LoadRawTexture2D($"{ContentGlobals.SpriteRoot}/Enemies/Goomba.png");

            AnimManager.SetSpriteSheet(spriteSheet);

            AnimManager.AddAnimation(AnimationGlobals.IdleName, new ReverseAnimation(spriteSheet, AnimationGlobals.InfiniteLoop,
                                                                                     new Animation.Frame(new Rectangle(67, 107, 26, 28), 1000d),
                                                                                     new Animation.Frame(new Rectangle(35, 104, 26, 31), 150d, new Vector2(0, -1)),
                                                                                     new Animation.Frame(new Rectangle(3, 5, 26, 34), 1000d, new Vector2(0, -2))));
            AnimManager.AddAnimation(AnimationGlobals.HurtName, new Animation(spriteSheet,
                                                                              new Animation.Frame(new Rectangle(65, 76, 29, 27), 80d),
                                                                              new Animation.Frame(new Rectangle(2, 109, 27, 26), 80d)));
            AnimManager.AddAnimation(AnimationGlobals.DeathName, new Animation(spriteSheet, new Animation.Frame(new Rectangle(2, 109, 27, 26), 1000d)));

            AnimManager.AddAnimation(AnimationGlobals.RunningName, new ReverseAnimation(spriteSheet, AnimationGlobals.InfiniteLoop,
                                                                                        new Animation.Frame(new Rectangle(129, 73, 28, 30), 150d),
                                                                                        new Animation.Frame(new Rectangle(67, 107, 26, 28), 100d),
                                                                                        new Animation.Frame(new Rectangle(99, 75, 28, 28), 150d)));
        }
        public Koopatrol()
        {
            Name = "Koopatrol";

            //Using their TTYD stats
            BattleStats = new Stats(26, 6, 0, 4, 2);

            AIBehavior = new KoopatrolAI(this);

            EntityProperties.AddPayback(SpikedPayback);
            EntityProperties.AddPhysAttribute(Enumerations.PhysicalAttributes.Spiked);

            EntityProperties.AddStatusProperty(Enumerations.StatusTypes.Sleep, new StatusPropertyHolder(70d, -1));
            EntityProperties.AddStatusProperty(Enumerations.StatusTypes.Dizzy, new StatusPropertyHolder(105d, 0));
            EntityProperties.AddStatusProperty(Enumerations.StatusTypes.Confused, new StatusPropertyHolder(75d, 0));
            EntityProperties.AddStatusProperty(Enumerations.StatusTypes.Tiny, new StatusPropertyHolder(90d, 0));
            EntityProperties.AddStatusProperty(Enumerations.StatusTypes.Stop, new StatusPropertyHolder(75d, -1));
            EntityProperties.AddStatusProperty(Enumerations.StatusTypes.DEFDown, new StatusPropertyHolder(95d, 0));
            EntityProperties.AddStatusProperty(Enumerations.StatusTypes.Burn, new StatusPropertyHolder(100d, 0));
            EntityProperties.AddStatusProperty(Enumerations.StatusTypes.Frozen, new StatusPropertyHolder(70d, 0));
            EntityProperties.AddStatusProperty(Enumerations.StatusTypes.Fright, new StatusPropertyHolder(70d, 0));
            EntityProperties.AddStatusProperty(Enumerations.StatusTypes.Blown, new StatusPropertyHolder(70d, 0));
            EntityProperties.AddStatusProperty(Enumerations.StatusTypes.KO, new StatusPropertyHolder(95d, 0));
            EntityProperties.AddStatusProperty(Enumerations.StatusTypes.Electrified, new StatusPropertyHolder(80d, 0));

            Texture2D spriteSheet = AssetManager.Instance.LoadRawTexture2D($"{ContentGlobals.SpriteRoot}/Enemies/Koopatrol.png");

            AnimManager.SetSpriteSheet(spriteSheet);

            AnimManager.AddAnimation(AnimationGlobals.IdleName, new LoopAnimation(spriteSheet, AnimationGlobals.InfiniteLoop,
                                                                                  new Animation.Frame(new Rectangle(1, 388, 42, 59), 500d)));
            AnimManager.AddAnimation(AnimationGlobals.RunningName, new ReverseAnimation(spriteSheet, AnimationGlobals.InfiniteLoop,
                                                                                        new Animation.Frame(new Rectangle(1, 388, 42, 59), 100d),
                                                                                        new Animation.Frame(new Rectangle(49, 387, 43, 60), 100d, new Vector2(-1, -1)),
                                                                                        new Animation.Frame(new Rectangle(98, 386, 45, 60), 100d, new Vector2(-2, -2))));
            AnimManager.AddAnimation(AnimationGlobals.HurtName, new Animation(spriteSheet,
                                                                              new Animation.Frame(new Rectangle(5, 325, 40, 50), 250d),
                                                                              new Animation.Frame(new Rectangle(56, 325, 38, 49), 250d)));
            AnimManager.AddAnimation(AnimationGlobals.DeathName, new Animation(spriteSheet,
                                                                               new Animation.Frame(new Rectangle(99, 327, 43, 48), 1000d)));

            AnimManager.AddAnimation(AnimationGlobals.ShelledBattleAnimations.EnterShellName, new Animation(spriteSheet,
                                                                                                            new Animation.Frame(new Rectangle(99, 262, 39, 49), 70d),
                                                                                                            new Animation.Frame(new Rectangle(152, 260, 35, 27), 70d),
                                                                                                            new Animation.Frame(new Rectangle(202, 261, 33, 25), 70d)));
            AnimManager.AddAnimation(AnimationGlobals.ShelledBattleAnimations.ShellSpinName, new LoopAnimation(spriteSheet, AnimationGlobals.InfiniteLoop,
                                                                                                               new Animation.Frame(new Rectangle(34, 449, 28, 30), 100d),
                                                                                                               new Animation.Frame(new Rectangle(66, 449, 28, 30), 100d),
                                                                                                               new Animation.Frame(new Rectangle(97, 449, 30, 30), 100d),
                                                                                                               new Animation.Frame(new Rectangle(130, 449, 28, 30), 100d),
                                                                                                               new Animation.Frame(new Rectangle(162, 449, 28, 30), 100d),
                                                                                                               new Animation.Frame(new Rectangle(1, 449, 30, 30), 100d)));
            AnimManager.AddAnimation(AnimationGlobals.ShelledBattleAnimations.ExitShellName, new Animation(spriteSheet,
                                                                                                           new Animation.Frame(new Rectangle(202, 261, 33, 25), 70d),
                                                                                                           new Animation.Frame(new Rectangle(152, 260, 35, 27), 70d),
                                                                                                           new Animation.Frame(new Rectangle(99, 262, 39, 49), 70d)));
            AnimManager.AddAnimation(AnimationGlobals.ShelledBattleAnimations.FlippedName, new LoopAnimation(spriteSheet, AnimationGlobals.InfiniteLoop,
                                                                                                             new Animation.Frame(new Rectangle(337, 57, 58, 35), 300d),
                                                                                                             new Animation.Frame(new Rectangle(337, 97, 58, 36), 300d)));
        }
Esempio n. 9
0
        public Yux() : base(new Stats(12, 3, 0, 2, 0))
        {
            Name = "Yux";

            ChangeHeightState(HeightStates.Airborne);

            Scale = new Vector2(.3f, .3f);

            EntityProperties.AddStatusProperty(StatusTypes.Sleep, new StatusPropertyHolder(30, 0));
            EntityProperties.AddStatusProperty(StatusTypes.Dizzy, new StatusPropertyHolder(100, 0));
            EntityProperties.AddStatusProperty(StatusTypes.Confused, new StatusPropertyHolder(70, 0));
            EntityProperties.AddStatusProperty(StatusTypes.Tiny, new StatusPropertyHolder(90, 0));
            EntityProperties.AddStatusProperty(StatusTypes.Stop, new StatusPropertyHolder(80, 0));
            EntityProperties.AddStatusProperty(StatusTypes.DEFDown, new StatusPropertyHolder(95, 0));
            EntityProperties.AddStatusProperty(StatusTypes.Burn, new StatusPropertyHolder(0, 0));
            EntityProperties.AddStatusProperty(StatusTypes.Frozen, new StatusPropertyHolder(0, 0));
            EntityProperties.AddStatusProperty(StatusTypes.Fright, new StatusPropertyHolder(0, 0));
            EntityProperties.AddStatusProperty(StatusTypes.Blown, new StatusPropertyHolder(90, 0));
            EntityProperties.AddStatusProperty(StatusTypes.KO, new StatusPropertyHolder(95, 0));

            Texture2D spriteSheet = AssetManager.Instance.LoadRawTexture2D($"{ContentGlobals.SpriteRoot}/Enemies/Yux.png");

            AnimManager.SetSpriteSheet(spriteSheet);

            AnimManager.AddAnimation(AnimationGlobals.IdleName, new Animation(spriteSheet,
                                                                              new Animation.Frame(new Rectangle(45, 50, 187, 189), 1000d)));
        }
Esempio n. 10
0
        public MiniYux() : base(new Stats(0, 1, 0, 0, 0))
        {
            Name = "Mini-Yux";

            //All types of Mini-Yuxes don't take turns
            BaseTurns = -99;

            Scale = new Vector2(.5f, .5f);

            ChangeHeightState(HeightStates.Airborne);

            //The Helper AdditionalProperty is added when the Yux creates the Mini-Yux
            //This helps allow Mini-Yuxes to be standalone enemies if desired

            EntityProperties.AddStatusProperty(Enumerations.StatusTypes.Sleep, new StatusPropertyHolder(80, 0));
            EntityProperties.AddStatusProperty(Enumerations.StatusTypes.Dizzy, new StatusPropertyHolder(100, 0));
            EntityProperties.AddStatusProperty(Enumerations.StatusTypes.Confused, new StatusPropertyHolder(90, 0));
            EntityProperties.AddStatusProperty(Enumerations.StatusTypes.Tiny, new StatusPropertyHolder(90, 0));
            EntityProperties.AddStatusProperty(Enumerations.StatusTypes.Stop, new StatusPropertyHolder(100, 0));
            EntityProperties.AddStatusProperty(Enumerations.StatusTypes.DEFDown, new StatusPropertyHolder(95, 0));
            EntityProperties.AddStatusProperty(Enumerations.StatusTypes.Burn, new StatusPropertyHolder(0, 0));
            EntityProperties.AddStatusProperty(Enumerations.StatusTypes.Frozen, new StatusPropertyHolder(0, 0));
            EntityProperties.AddStatusProperty(Enumerations.StatusTypes.Fright, new StatusPropertyHolder(0, 0));
            EntityProperties.AddStatusProperty(Enumerations.StatusTypes.Blown, new StatusPropertyHolder(100, 0));
            EntityProperties.AddStatusProperty(Enumerations.StatusTypes.KO, new StatusPropertyHolder(100, 0));

            Texture2D spriteSheet = AssetManager.Instance.LoadRawTexture2D($"{ContentGlobals.SpriteRoot}/Enemies/Yux.png");
            AnimManager.SetSpriteSheet(spriteSheet);

            AnimManager.AddAnimation(AnimationGlobals.IdleName, new Animation(spriteSheet,
                new Animation.Frame(new Rectangle(300, 14, 52, 48), 1000d)));
        }
Esempio n. 11
0
        public override void LoadAnimations()
        {
            Texture2D spriteSheet = AssetManager.Instance.LoadRawTexture2D($"{ContentGlobals.SpriteRoot}/Enemies/Yux.png");

            AnimManager.SetSpriteSheet(spriteSheet);

            AnimManager.AddAnimation(AnimationGlobals.IdleName, new Animation(spriteSheet,
                                                                              new Animation.Frame(new Rectangle(45, 50, 187, 189), 300d)));
        }
Esempio n. 12
0
        public Paratroopa()
        {
            Name = "Paratroopa";

            BattleStats.Level = 9;

            EntityProperties.SetVulnerableDamageEffects(EntityProperties.GetVulnerableDamageEffects() | Enumerations.DamageEffects.RemovesWings);

            ChangeHeightState(Enumerations.HeightStates.Airborne);

            EntityProperties.AddStatusProperty(Enumerations.StatusTypes.Dizzy, new StatusPropertyHolder(120d, 0));
            EntityProperties.AddStatusProperty(Enumerations.StatusTypes.Blown, new StatusPropertyHolder(110d, 0));

            Texture2D spriteSheet = AssetManager.Instance.LoadRawTexture2D($"{ContentGlobals.SpriteRoot}/Enemies/Paratroopa.png");

            AnimManager.SetSpriteSheet(spriteSheet);

            //The Paratroopa uses the same in shell animation as a Koopa Troopa for Shell Shot, but rotates itself differently
            AnimManager.AddAnimation(AnimationGlobals.ParatroopaBattleAnimations.ShellShotName, new Animation(spriteSheet,
                                                                                                              new Animation.Frame(new Rectangle(2, 222, 28, 25), 1000d)));

            //This animation uses the same rectangle for every frame. However, the wings are different on those frames and the
            //Paratroopa has varying heights on each frame
            AnimManager.AddAnimation(AnimationGlobals.WingedBattleAnimations.WingedIdleName, new LoopAnimation(spriteSheet, AnimationGlobals.InfiniteLoop,
                                                                                                               new Animation.Frame(new Rectangle(56, 4, 32, 48), 100d),
                                                                                                               new Animation.Frame(new Rectangle(56, 4, 32, 48), 100d, new Vector2(0, -1)),
                                                                                                               new Animation.Frame(new Rectangle(56, 4, 32, 48), 100d, new Vector2(0, -2)),
                                                                                                               new Animation.Frame(new Rectangle(56, 4, 32, 48), 100d, new Vector2(0, -1))));
            AnimManager.AddAnimationChildFrames(AnimationGlobals.WingedBattleAnimations.WingedIdleName,
                                                new Animation.Frame(new Rectangle(72, 156, 19, 27), 100d, new Vector2(25, -4)),
                                                new Animation.Frame(new Rectangle(104, 220, 23, 23), 100d, new Vector2(25, 4)),
                                                new Animation.Frame(new Rectangle(40, 219, 18, 28), 100d, new Vector2(25, 16)),
                                                new Animation.Frame(new Rectangle(248, 190, 21, 23), 100d, new Vector2(25, 13)));

            //NOTE: Incomplete wing frames; the wings on the left of the Paratroopa will require more work to get in due to the way the wings are stored

            //Same story with this one
            AnimManager.AddAnimation(AnimationGlobals.WingedBattleAnimations.FlyingName, new LoopAnimation(spriteSheet, AnimationGlobals.InfiniteLoop,
                                                                                                           new Animation.Frame(new Rectangle(103, 4, 33, 51), 80d),
                                                                                                           new Animation.Frame(new Rectangle(103, 4, 33, 51), 80d, new Vector2(0, -1)),
                                                                                                           new Animation.Frame(new Rectangle(103, 4, 33, 51), 80d, new Vector2(0, -2)),
                                                                                                           new Animation.Frame(new Rectangle(103, 4, 33, 51), 80d, new Vector2(0, -1))));
            AnimManager.AddAnimationChildFrames(AnimationGlobals.WingedBattleAnimations.FlyingName,
                                                new Animation.Frame(new Rectangle(72, 156, 19, 27), 80d, new Vector2(26, -4)),
                                                new Animation.Frame(new Rectangle(104, 220, 23, 23), 80d, new Vector2(26, 4)),
                                                new Animation.Frame(new Rectangle(40, 219, 18, 28), 80d, new Vector2(26, 16)),
                                                new Animation.Frame(new Rectangle(248, 190, 21, 23), 80d, new Vector2(26, 13)));

            AnimManager.AddAnimation(AnimationGlobals.HurtName, new Animation(spriteSheet,
                                                                              new Animation.Frame(new Rectangle(5, 59, 39, 44), 250d),
                                                                              new Animation.Frame(new Rectangle(200, 3, 36, 43), 250d)));
            //NOTE: Not accurate - in PM, it looks like the wings are rotated slightly to match the Paratroopa's pose in its hurt animation
            AnimManager.AddAnimationChildFrames(AnimationGlobals.HurtName,
                                                new Animation.Frame(new Rectangle(66, 190, 45, 26), 250d, new Vector2(-1, 2), -.01f),
                                                new Animation.Frame(new Rectangle(66, 190, 45, 26), 250d, new Vector2(-1, 2), -.01f));
        }
Esempio n. 13
0
        public Goombario() : base(new PartnerStats(PartnerGlobals.PartnerRanks.Normal, 50, 0, 0))
        {
            Name = "Goombario";
            PartnerDescription = "He can Headbonk on enemies!";
            PartnerType        = Enumerations.PartnerTypes.Goombario;

            Texture2D spriteSheet = AssetManager.Instance.LoadRawTexture2D($"{ContentGlobals.SpriteRoot}/Characters/Goombario.png");

            AnimManager.SetSpriteSheet(spriteSheet);

            AnimManager.AddAnimation(AnimationGlobals.IdleName, new ReverseAnimation(spriteSheet, AnimationGlobals.InfiniteLoop,
                                                                                     new Animation.Frame(new Rectangle(67, 89, 26, 30), 1000d),
                                                                                     new Animation.Frame(new Rectangle(131, 88, 26, 31), 100d, new Vector2(0, -1)),
                                                                                     new Animation.Frame(new Rectangle(99, 86, 26, 33), 1000d, new Vector2(0, -3))));

            AnimManager.AddAnimation(AnimationGlobals.RunningName, new ReverseAnimation(spriteSheet, AnimationGlobals.InfiniteLoop,
                                                                                        new Animation.Frame(new Rectangle(3, 9, 28, 30), 100d),
                                                                                        new Animation.Frame(new Rectangle(67, 89, 26, 30), 100d),
                                                                                        new Animation.Frame(new Rectangle(129, 46, 30, 33), 100d)));

            AnimManager.AddAnimation(AnimationGlobals.PlayerBattleAnimations.ChoosingActionName, new Animation(spriteSheet,
                                                                                                               new Animation.Frame(new Rectangle(2, 46, 26, 33), 1000d, new Vector2(0, -3))));
            AnimManager.AddAnimation(AnimationGlobals.PlayerBattleAnimations.DangerChoosingActionName, new Animation(spriteSheet,
                                                                                                                     new Animation.Frame(new Rectangle(2, 46, 26, 33), 1000d, new Vector2(0, -3))));

            AnimManager.AddAnimation(AnimationGlobals.JumpStartName, new Animation(spriteSheet,
                                                                                   new Animation.Frame(new Rectangle(130, 5, 28, 31), 400d)));

            AnimManager.AddAnimation(AnimationGlobals.HurtName, new Animation(spriteSheet,
                                                                              new Animation.Frame(new Rectangle(49, 164, 30, 27), 1000d)));
            AnimManager.AddAnimation(AnimationGlobals.SpikedTipHurtName, new Animation(spriteSheet,
                                                                                       new Animation.Frame(new Rectangle(49, 164, 30, 27), 1000d)));
            AnimManager.AddAnimation(AnimationGlobals.DeathName, new Animation(spriteSheet,
                                                                               new Animation.Frame(new Rectangle(49, 164, 30, 27), 1000d)));

            AnimManager.AddAnimation(AnimationGlobals.StatusBattleAnimations.InjuredName, new LoopAnimation(spriteSheet, AnimationGlobals.InfiniteLoop,
                                                                                                            new Animation.Frame(new Rectangle(81, 163, 30, 28), 650d),
                                                                                                            new Animation.Frame(new Rectangle(7, 162, 32, 29), 650d)));
            AnimManager.AddAnimation(AnimationGlobals.PlayerBattleAnimations.DangerName, new LoopAnimation(spriteSheet, AnimationGlobals.InfiniteLoop,
                                                                                                           new Animation.Frame(new Rectangle(81, 163, 30, 28), 650d),
                                                                                                           new Animation.Frame(new Rectangle(7, 162, 32, 29), 650d)));
            AnimManager.AddAnimation(AnimationGlobals.StatusBattleAnimations.ConfusedName, new LoopAnimation(spriteSheet, AnimationGlobals.InfiniteLoop,
                                                                                                             new Animation.Frame(new Rectangle(81, 163, 30, 28), 650d),
                                                                                                             new Animation.Frame(new Rectangle(7, 162, 32, 29), 650d)));
            AnimManager.AddAnimation(AnimationGlobals.StatusBattleAnimations.DizzyName, new LoopAnimation(spriteSheet, AnimationGlobals.InfiniteLoop,
                                                                                                          new Animation.Frame(new Rectangle(81, 163, 30, 28), 650d),
                                                                                                          new Animation.Frame(new Rectangle(7, 162, 32, 29), 650d)));
            AnimManager.AddAnimation(AnimationGlobals.StatusBattleAnimations.SleepName, new LoopAnimation(spriteSheet, AnimationGlobals.InfiniteLoop,
                                                                                                          new Animation.Frame(new Rectangle(81, 163, 30, 28), 650d),
                                                                                                          new Animation.Frame(new Rectangle(7, 162, 32, 29), 650d)));

            AnimManager.AddAnimation(AnimationGlobals.TalkName, new ReverseAnimation(spriteSheet, AnimationGlobals.InfiniteLoop,
                                                                                     new Animation.Frame(new Rectangle(67, 89, 26, 30), 32d),
                                                                                     new Animation.Frame(new Rectangle(3, 88, 26, 31), 32d, new Vector2(0, -1)),
                                                                                     new Animation.Frame(new Rectangle(67, 46, 26, 33), 32d, new Vector2(0, -3))));
        }
Esempio n. 14
0
        public override void LoadAnimations()
        {
            Texture2D spriteSheet = AssetManager.Instance.LoadRawTexture2D($"{ContentGlobals.SpriteRoot}/Enemies/ShyGuy.png");

            AnimManager.SetSpriteSheet(spriteSheet);

            AnimManager.AddAnimation(AnimationGlobals.IdleName, new LoopAnimation(null, AnimationGlobals.InfiniteLoop,
                                                                                  new Animation.Frame(new Rectangle(3, 7, 27, 32), 150d),
                                                                                  new Animation.Frame(new Rectangle(35, 6, 26, 33), 150d, new Vector2(0, -1))));
        }
Esempio n. 15
0
        public Goompa() : base(new PartnerStats(PartnerGlobals.PartnerRanks.Normal, 50, 0, 0))
        {
            Name = "Goompa";
            PartnerDescription = "Goombario's wise grandpa.";
            PartnerType        = Enumerations.PartnerTypes.Goompa;

            //Goompa doesn't take turns
            BaseTurns = -99;

            Texture2D spriteSheet = AssetManager.Instance.LoadRawTexture2D($"{ContentGlobals.SpriteRoot}/Characters/Goompa.png");

            AnimManager.SetSpriteSheet(spriteSheet);

            AnimManager.AddAnimation(AnimationGlobals.IdleName, new ReverseAnimation(null, AnimationGlobals.InfiniteLoop,
                                                                                     new Animation.Frame(new Rectangle(3, 124, 26, 35), 1000),
                                                                                     new Animation.Frame(new Rectangle(35, 123, 26, 36), 100, new Vector2(0, -1)),
                                                                                     new Animation.Frame(new Rectangle(67, 121, 26, 38), 1000, new Vector2(0, -3))));

            AnimManager.AddAnimation(AnimationGlobals.PlayerBattleAnimations.ChoosingActionName, new Animation(null,
                                                                                                               new Animation.Frame(new Rectangle(3, 124, 26, 35), 100d)));
            AnimManager.AddAnimation(AnimationGlobals.PlayerBattleAnimations.DangerChoosingActionName, new Animation(null,
                                                                                                                     new Animation.Frame(new Rectangle(3, 124, 26, 35), 100d)));

            AnimManager.AddAnimation(AnimationGlobals.HurtName, new Animation(null,
                                                                              new Animation.Frame(new Rectangle(129, 88, 30, 31), 100d)));
            AnimManager.AddAnimation(AnimationGlobals.DeathName, new Animation(null,
                                                                               new Animation.Frame(new Rectangle(129, 88, 30, 31), 1000d)));
            AnimManager.AddAnimation(AnimationGlobals.SpikedTipHurtName, new Animation(null,
                                                                                       new Animation.Frame(new Rectangle(129, 88, 30, 31), 100d)));

            AnimManager.AddAnimation(AnimationGlobals.RunningName, new ReverseAnimation(null, AnimationGlobals.InfiniteLoop,
                                                                                        new Animation.Frame(new Rectangle(35, 164, 28, 35), 100d),
                                                                                        new Animation.Frame(new Rectangle(3, 124, 26, 35), 100d),
                                                                                        new Animation.Frame(new Rectangle(161, 83, 29, 36), 100d)));

            AnimManager.AddAnimation(AnimationGlobals.PlayerBattleAnimations.DangerName, new ReverseAnimation(null, AnimationGlobals.InfiniteLoop,
                                                                                                              new Animation.Frame(new Rectangle(3, 124, 26, 35), 1000),
                                                                                                              new Animation.Frame(new Rectangle(35, 123, 26, 36), 100, new Vector2(0, -1)),
                                                                                                              new Animation.Frame(new Rectangle(67, 121, 26, 38), 1000, new Vector2(0, -3))));
            AnimManager.AddAnimation(AnimationGlobals.StatusBattleAnimations.InjuredName, new Animation(null,
                                                                                                        new Animation.Frame(new Rectangle(129, 88, 30, 31), 100d)));
            AnimManager.AddAnimation(AnimationGlobals.StatusBattleAnimations.SleepName, new Animation(null,
                                                                                                      new Animation.Frame(new Rectangle(129, 88, 30, 31), 100d)));
            AnimManager.AddAnimation(AnimationGlobals.StatusBattleAnimations.DizzyName, new Animation(null,
                                                                                                      new Animation.Frame(new Rectangle(129, 88, 30, 31), 100d)));
            AnimManager.AddAnimation(AnimationGlobals.StatusBattleAnimations.ConfusedName, new Animation(null,
                                                                                                         new Animation.Frame(new Rectangle(129, 88, 30, 31), 100d)));
            AnimManager.AddAnimation(AnimationGlobals.StatusBattleAnimations.StoneName, new Animation(null,
                                                                                                      new Animation.Frame(new Rectangle(3, 124, 26, 35), 1000)));

            AnimManager.AddAnimation(AnimationGlobals.TalkName, new ReverseAnimation(spriteSheet, AnimationGlobals.InfiniteLoop,
                                                                                     new Animation.Frame(new Rectangle(3, 124, 26, 35), 32d),
                                                                                     new Animation.Frame(new Rectangle(3, 163, 26, 36), 32d, new Vector2(0, -1)),
                                                                                     new Animation.Frame(new Rectangle(163, 122, 26, 37), 32d, new Vector2(0, -2))));
        }
Esempio n. 16
0
        public override void LoadAnimations()
        {
            Texture2D spriteSheet = AssetManager.Instance.LoadRawTexture2D($"{ContentGlobals.SpriteRoot}/Enemies/Pokey.png");

            AnimManager.SetSpriteSheet(spriteSheet);

            AnimManager.AddAnimation(AnimationGlobals.IdleName, new ReverseAnimation(null, AnimationGlobals.InfiniteLoop,
                                                                                     new Animation.Frame(new Rectangle(33, 65, 30, 30), 200d),
                                                                                     new Animation.Frame(new Rectangle(97, 65, 30, 30), 200d),
                                                                                     new Animation.Frame(new Rectangle(65, 66, 30, 29), 200d, new Vector2(0, -1))));
        }
Esempio n. 17
0
        /// <summary>
        /// Copies all animations from an animation manager to the Duplighost's primary animation manager.
        /// The Duplighost's primary animation manager is cleared before copying.
        /// </summary>
        /// <param name="objAnimManager">The animation manager to copy animations from.</param>
        public void CopyEntityAnimations(ObjAnimManager objAnimManager)
        {
            AnimManager.ClearAllAnimations();

            Animation[] allAnims = objAnimManager.GetAllAnimations();
            for (int i = 0; i < allAnims.Length; i++)
            {
                Animation anim = allAnims[i];
                AnimManager.AddAnimation(anim.Key, anim);
            }
        }
Esempio n. 18
0
        public override void LoadAnimations()
        {
            Texture2D spriteSheet = AssetManager.Instance.LoadRawTexture2D($"{ContentGlobals.SpriteRoot}/Enemies/SkyGuy.png");

            AnimManager.SetSpriteSheet(spriteSheet);

            AnimManager.AddAnimation(AnimationGlobals.IdleName, new ReverseAnimation(null, AnimationGlobals.InfiniteLoop,
                                                                                     new Animation.Frame(new Rectangle(52, 3, 39, 33), 200d, new Vector2(0, 1)),
                                                                                     new Animation.Frame(new Rectangle(3, 2, 40, 31), 200d),
                                                                                     new Animation.Frame(new Rectangle(98, 1, 43, 30), 200d, new Vector2(0, -1))));
        }
        public KoopaTroopa() : base(new Stats(8, 4, 0, 1, 1))
        {
            Name = "Koopa Troopa";

            AIBehavior = new KoopaTroopaAI(this);

            EntityProperties.SetVulnerableDamageEffects(Enumerations.DamageEffects.FlipsShelled | Enumerations.DamageEffects.FlipsClefts);

            EntityProperties.AddStatusProperty(Enumerations.StatusTypes.Sleep, new StatusPropertyHolder(95d, 0));
            EntityProperties.AddStatusProperty(Enumerations.StatusTypes.Dizzy, new StatusPropertyHolder(90d, 0));
            EntityProperties.AddStatusProperty(Enumerations.StatusTypes.Confused, new StatusPropertyHolder(90d, 0));
            EntityProperties.AddStatusProperty(Enumerations.StatusTypes.Tiny, new StatusPropertyHolder(95d, 0));
            EntityProperties.AddStatusProperty(Enumerations.StatusTypes.Stop, new StatusPropertyHolder(100d, 0));
            EntityProperties.AddStatusProperty(Enumerations.StatusTypes.DEFDown, new StatusPropertyHolder(95d, 0));
            EntityProperties.AddStatusProperty(Enumerations.StatusTypes.Burn, new StatusPropertyHolder(100d, 0));
            EntityProperties.AddStatusProperty(Enumerations.StatusTypes.Frozen, new StatusPropertyHolder(90d, 0));
            EntityProperties.AddStatusProperty(Enumerations.StatusTypes.Fright, new StatusPropertyHolder(95d, 0));
            EntityProperties.AddStatusProperty(Enumerations.StatusTypes.Blown, new StatusPropertyHolder(90d, 0));
            EntityProperties.AddStatusProperty(Enumerations.StatusTypes.KO, new StatusPropertyHolder(100d, 0));

            Texture2D spriteSheet = AssetManager.Instance.LoadRawTexture2D($"{ContentGlobals.SpriteRoot}/Enemies/KoopaTroopa.png");

            AnimManager.SetSpriteSheet(spriteSheet);

            AnimManager.AddAnimation(AnimationGlobals.IdleName, new Animation(spriteSheet, new Animation.Frame(new Rectangle(9, 117, 33, 50), 1000d)));
            AnimManager.AddAnimation(AnimationGlobals.RunningName, new ReverseAnimation(spriteSheet, AnimationGlobals.InfiniteLoop,
                                                                                        new Animation.Frame(new Rectangle(247, 4, 40, 48), 200d),
                                                                                        new Animation.Frame(new Rectangle(248, 61, 34, 49), 200d),
                                                                                        new Animation.Frame(new Rectangle(201, 62, 33, 49), 200d)));

            AnimManager.AddAnimation(AnimationGlobals.HurtName, new Animation(spriteSheet,
                                                                              new Animation.Frame(new Rectangle(102, 115, 39, 44), 250d),
                                                                              new Animation.Frame(new Rectangle(200, 115, 36, 43), 250d)));
            AnimManager.AddAnimation(AnimationGlobals.DeathName, new Animation(spriteSheet,
                                                                               new Animation.Frame(new Rectangle(244, 117, 40, 42), 1000d)));

            AnimManager.AddAnimation(AnimationGlobals.ShelledBattleAnimations.EnterShellName, new Animation(spriteSheet,
                                                                                                            new Animation.Frame(new Rectangle(193, 245, 27, 26), 70d),
                                                                                                            new Animation.Frame(new Rectangle(34, 278, 26, 24), 70d)));
            AnimManager.AddAnimation(AnimationGlobals.ShelledBattleAnimations.ShellSpinName, new LoopAnimation(spriteSheet, AnimationGlobals.InfiniteLoop,
                                                                                                               new Animation.Frame(new Rectangle(2, 246, 28, 25), 100d),
                                                                                                               new Animation.Frame(new Rectangle(33, 246, 30, 25), 100d),
                                                                                                               new Animation.Frame(new Rectangle(2, 278, 28, 25), 100d),
                                                                                                               new Animation.Frame(new Rectangle(162, 246, 28, 25), 100d),
                                                                                                               new Animation.Frame(new Rectangle(129, 246, 30, 25), 100d),
                                                                                                               new Animation.Frame(new Rectangle(322, 214, 28, 25), 100d)));
            AnimManager.AddAnimation(AnimationGlobals.ShelledBattleAnimations.ExitShellName, new Animation(spriteSheet,
                                                                                                           new Animation.Frame(new Rectangle(34, 278, 26, 24), 70d),
                                                                                                           new Animation.Frame(new Rectangle(193, 245, 27, 26), 70d)));
            AnimManager.AddAnimation(AnimationGlobals.ShelledBattleAnimations.FlippedName, new LoopAnimation(spriteSheet, AnimationGlobals.InfiniteLoop,
                                                                                                             new Animation.Frame(new Rectangle(5, 216, 53, 23), 300d),
                                                                                                             new Animation.Frame(new Rectangle(68, 209, 54, 30), 300d)));
        }
Esempio n. 20
0
        public override void LoadAnimations()
        {
            base.LoadAnimations();

            Texture2D spriteSheet = AssetManager.Instance.LoadRawTexture2D($"{ContentGlobals.SpriteRoot}/Enemies/Paratroopa.png");

            AnimManager.SetSpriteSheet(spriteSheet);

            //The Paratroopa uses the same in shell animation as a Koopa Troopa for Shell Shot, but rotates itself differently
            AnimManager.AddAnimation(AnimationGlobals.ParatroopaBattleAnimations.ShellShotName, new Animation(spriteSheet,
                                                                                                              new Animation.Frame(new Rectangle(2, 222, 28, 25), 1000d)));

            LoopAnimation wingedIdle = new LoopAnimation(spriteSheet, AnimationGlobals.InfiniteLoop,
                                                         new Animation.Frame(new Rectangle(56, 4, 32, 48), 100d),
                                                         new Animation.Frame(new Rectangle(56, 4, 32, 48), 100d, new Vector2(0, -1)),
                                                         new Animation.Frame(new Rectangle(56, 4, 32, 48), 100d, new Vector2(0, -2)),
                                                         new Animation.Frame(new Rectangle(56, 4, 32, 48), 100d, new Vector2(0, -1)));

            //This animation uses the same rectangle for every frame. However, the wings are different on those frames and the
            //Paratroopa has varying heights on each frame
            AnimManager.AddAnimation(AnimationGlobals.WingedBattleAnimations.WingedIdleName, wingedIdle);
            wingedIdle.SetChildFrames(
                new Animation.Frame(new Rectangle(72, 156, 19, 27), 100d, new Vector2(19, -13)),
                new Animation.Frame(new Rectangle(104, 220, 23, 23), 100d, new Vector2(21, -8)),
                new Animation.Frame(new Rectangle(40, 219, 18, 28), 100d, new Vector2(19, 8)),
                new Animation.Frame(new Rectangle(248, 190, 21, 23), 100d, new Vector2(20, 1)));

            //NOTE: Incomplete wing frames; the wings on the left of the Paratroopa will require more work to get in due to the way the wings are stored

            //Same story with this one
            LoopAnimation flyingName = new LoopAnimation(spriteSheet, AnimationGlobals.InfiniteLoop,
                                                         new Animation.Frame(new Rectangle(103, 4, 33, 51), 80d),
                                                         new Animation.Frame(new Rectangle(103, 4, 33, 51), 80d, new Vector2(0, -1)),
                                                         new Animation.Frame(new Rectangle(103, 4, 33, 51), 80d, new Vector2(0, -2)),
                                                         new Animation.Frame(new Rectangle(103, 4, 33, 51), 80d, new Vector2(0, -1)));

            AnimManager.AddAnimation(AnimationGlobals.WingedBattleAnimations.FlyingName, flyingName);
            flyingName.SetChildFrames(
                new Animation.Frame(new Rectangle(72, 156, 19, 27), 80d, new Vector2(26, -4)),
                new Animation.Frame(new Rectangle(104, 220, 23, 23), 80d, new Vector2(26, 4)),
                new Animation.Frame(new Rectangle(40, 219, 18, 28), 80d, new Vector2(26, 16)),
                new Animation.Frame(new Rectangle(248, 190, 21, 23), 80d, new Vector2(26, 13)));

            Animation hurtName = new Animation(spriteSheet,
                                               new Animation.Frame(new Rectangle(5, 59, 39, 44), 250d),
                                               new Animation.Frame(new Rectangle(200, 3, 36, 43), 250d));

            AnimManager.AddAnimation(AnimationGlobals.HurtName, hurtName);
            //NOTE: Not accurate - in PM, it looks like the wings are rotated slightly to match the Paratroopa's pose in its hurt animation
            hurtName.SetChildFrames(
                new Animation.Frame(new Rectangle(66, 190, 45, 26), 250d, new Vector2(3, -6), -.01f),
                new Animation.Frame(new Rectangle(66, 190, 45, 26), 250d, new Vector2(3, -6), -.01f));
        }
Esempio n. 21
0
        public override void LoadAnimations()
        {
            Texture2D spriteSheet = AssetManager.Instance.LoadRawTexture2D($"{ContentGlobals.SpriteRoot}/Characters/Goombario.png");

            AnimManager.SetSpriteSheet(spriteSheet);

            AnimManager.AddAnimation(AnimationGlobals.IdleName, new ReverseAnimation(spriteSheet, AnimationGlobals.InfiniteLoop,
                                                                                     new Animation.Frame(new Rectangle(67, 89, 26, 30), 1000d),
                                                                                     new Animation.Frame(new Rectangle(131, 88, 26, 31), 100d, new Vector2(0, -1)),
                                                                                     new Animation.Frame(new Rectangle(99, 86, 26, 33), 1000d, new Vector2(0, -3))));

            AnimManager.AddAnimation(AnimationGlobals.RunningName, new ReverseAnimation(spriteSheet, AnimationGlobals.InfiniteLoop,
                                                                                        new Animation.Frame(new Rectangle(3, 9, 28, 30), 100d),
                                                                                        new Animation.Frame(new Rectangle(67, 89, 26, 30), 100d),
                                                                                        new Animation.Frame(new Rectangle(129, 46, 30, 33), 100d)));

            AnimManager.AddAnimation(AnimationGlobals.PlayerBattleAnimations.ChoosingActionName, new Animation(spriteSheet,
                                                                                                               new Animation.Frame(new Rectangle(2, 46, 26, 33), 1000d, new Vector2(0, -2))));
            AnimManager.AddAnimation(AnimationGlobals.PlayerBattleAnimations.DangerChoosingActionName, new Animation(spriteSheet,
                                                                                                                     new Animation.Frame(new Rectangle(2, 46, 26, 33), 1000d, new Vector2(0, -2))));

            AnimManager.AddAnimation(AnimationGlobals.JumpStartName, new Animation(spriteSheet,
                                                                                   new Animation.Frame(new Rectangle(130, 5, 28, 31), 400d)));

            AnimManager.AddAnimation(AnimationGlobals.HurtName, new Animation(spriteSheet,
                                                                              new Animation.Frame(new Rectangle(49, 164, 30, 27), 1000d)));
            AnimManager.AddAnimation(AnimationGlobals.SpikedTipHurtName, new Animation(spriteSheet,
                                                                                       new Animation.Frame(new Rectangle(49, 164, 30, 27), 1000d)));
            AnimManager.AddAnimation(AnimationGlobals.DeathName, new Animation(spriteSheet,
                                                                               new Animation.Frame(new Rectangle(49, 164, 30, 27), 1000d)));

            AnimManager.AddAnimation(AnimationGlobals.StatusBattleAnimations.InjuredName, new LoopAnimation(spriteSheet, AnimationGlobals.InfiniteLoop,
                                                                                                            new Animation.Frame(new Rectangle(81, 163, 30, 28), 650d),
                                                                                                            new Animation.Frame(new Rectangle(7, 162, 32, 29), 650d)));
            AnimManager.AddAnimation(AnimationGlobals.PlayerBattleAnimations.DangerName, new LoopAnimation(spriteSheet, AnimationGlobals.InfiniteLoop,
                                                                                                           new Animation.Frame(new Rectangle(81, 163, 30, 28), 650d),
                                                                                                           new Animation.Frame(new Rectangle(7, 162, 32, 29), 650d)));
            AnimManager.AddAnimation(AnimationGlobals.StatusBattleAnimations.ConfusedName, new LoopAnimation(spriteSheet, AnimationGlobals.InfiniteLoop,
                                                                                                             new Animation.Frame(new Rectangle(81, 163, 30, 28), 650d),
                                                                                                             new Animation.Frame(new Rectangle(7, 162, 32, 29), 650d)));
            AnimManager.AddAnimation(AnimationGlobals.StatusBattleAnimations.DizzyName, new LoopAnimation(spriteSheet, AnimationGlobals.InfiniteLoop,
                                                                                                          new Animation.Frame(new Rectangle(81, 163, 30, 28), 650d),
                                                                                                          new Animation.Frame(new Rectangle(7, 162, 32, 29), 650d)));
            AnimManager.AddAnimation(AnimationGlobals.StatusBattleAnimations.SleepName, new LoopAnimation(spriteSheet, AnimationGlobals.InfiniteLoop,
                                                                                                          new Animation.Frame(new Rectangle(81, 163, 30, 28), 650d),
                                                                                                          new Animation.Frame(new Rectangle(7, 162, 32, 29), 650d)));

            AnimManager.AddAnimation(AnimationGlobals.TalkName, new ReverseAnimation(spriteSheet, AnimationGlobals.InfiniteLoop,
                                                                                     new Animation.Frame(new Rectangle(67, 89, 26, 30), 32d),
                                                                                     new Animation.Frame(new Rectangle(3, 88, 26, 31), 32d, new Vector2(0, -1)),
                                                                                     new Animation.Frame(new Rectangle(67, 46, 26, 33), 32d, new Vector2(0, -2))));
        }
Esempio n. 22
0
        public Kooper() : base(new PartnerStats(PartnerGlobals.PartnerRanks.Normal, 50, 0, 1))
        {
            Name = "Kooper";
            PartnerDescription = "He can throw his shell at enemies!";
            PartnerType        = Enumerations.PartnerTypes.Kooper;

            //As Kooper is a Koopa, he can be flipped
            EntityProperties.SetVulnerableDamageEffects(Enumerations.DamageEffects.FlipsShelled | Enumerations.DamageEffects.FlipsClefts);

            FlippedBehavior = new KoopaFlippedBehavior(this, 2, EntityProperties.GetVulnerableDamageEffects(), BattleStats.BaseDefense);

            Texture2D spriteSheet = AssetManager.Instance.LoadRawTexture2D($"{ContentGlobals.SpriteRoot}/Characters/Kooper.png");

            AnimManager.SetSpriteSheet(spriteSheet);

            AnimManager.AddAnimation(AnimationGlobals.IdleName, new Animation(spriteSheet, new Animation.Frame(new Rectangle(97, 117, 30, 50), 1000d)));
            AnimManager.AddAnimation(AnimationGlobals.PlayerBattleAnimations.DangerName, new Animation(spriteSheet, new Animation.Frame(new Rectangle(97, 117, 30, 50), 1000d)));

            AnimManager.AddAnimation(AnimationGlobals.HurtName, new Animation(spriteSheet,
                                                                              new Animation.Frame(new Rectangle(4, 170, 42, 45), 500d),
                                                                              new Animation.Frame(new Rectangle(52, 173, 41, 42), 500d)));
            AnimManager.AddAnimation(AnimationGlobals.DeathName, new Animation(spriteSheet, new Animation.Frame(new Rectangle(52, 173, 41, 42), 1000d)));

            AnimManager.AddAnimation(AnimationGlobals.RunningName, new LoopAnimation(spriteSheet, AnimationGlobals.InfiniteLoop,
                                                                                     new Animation.Frame(new Rectangle(97, 117, 30, 50), 100d),
                                                                                     new Animation.Frame(new Rectangle(89, 3, 34, 48), 100d)));

            AnimManager.AddAnimation(AnimationGlobals.PlayerBattleAnimations.ChoosingActionName, new Animation(spriteSheet, new Animation.Frame(new Rectangle(225, 117, 30, 50), 1000d)));
            AnimManager.AddAnimation(AnimationGlobals.PlayerBattleAnimations.DangerChoosingActionName, new Animation(spriteSheet, new Animation.Frame(new Rectangle(225, 117, 30, 50), 1000d)));

            AnimManager.AddAnimation(AnimationGlobals.PlayerBattleAnimations.StarSpecialName, new Animation(spriteSheet,
                                                                                                            new Animation.Frame(new Rectangle(233, 60, 34, 51), 700d)));
            AnimManager.AddAnimation(AnimationGlobals.PlayerBattleAnimations.StarWishName, new Animation(spriteSheet,
                                                                                                         new Animation.Frame(new Rectangle(193, 62, 30, 49), 700d)));

            AnimManager.AddAnimation(AnimationGlobals.StatusBattleAnimations.DizzyName, new Animation(spriteSheet, new Animation.Frame(new Rectangle(97, 117, 30, 50), 1000d)));
            AnimManager.AddAnimation(AnimationGlobals.StatusBattleAnimations.ConfusedName, new Animation(spriteSheet, new Animation.Frame(new Rectangle(97, 117, 30, 50), 1000d)));
            AnimManager.AddAnimation(AnimationGlobals.StatusBattleAnimations.SleepName, new Animation(spriteSheet, new Animation.Frame(new Rectangle(97, 117, 30, 50), 1000d)));
            AnimManager.AddAnimation(AnimationGlobals.StatusBattleAnimations.InjuredName, new LoopAnimation(spriteSheet, AnimationGlobals.InfiniteLoop,
                                                                                                            new Animation.Frame(new Rectangle(4, 170, 42, 45), 500d),
                                                                                                            new Animation.Frame(new Rectangle(52, 173, 41, 42), 500d)));

            AnimManager.AddAnimation(AnimationGlobals.ShelledBattleAnimations.ShellSpinName, new LoopAnimation(spriteSheet, AnimationGlobals.InfiniteLoop,
                                                                                                               new Animation.Frame(new Rectangle(162, 222, 28, 25), 250d),
                                                                                                               new Animation.Frame(new Rectangle(194, 222, 28, 25), 250d),
                                                                                                               new Animation.Frame(new Rectangle(225, 222, 30, 25), 250d),
                                                                                                               new Animation.Frame(new Rectangle(258, 222, 28, 25), 250d)));
            AnimManager.AddAnimation(AnimationGlobals.ShelledBattleAnimations.FlippedName, new LoopAnimation(spriteSheet, AnimationGlobals.InfiniteLoop,
                                                                                                             new Animation.Frame(new Rectangle(69, 221, 53, 26), 350d),
                                                                                                             new Animation.Frame(new Rectangle(5, 218, 54, 28), 350d)));
        }
Esempio n. 23
0
        public Gulpit() : base(new Stats(22, 12, 0, 2, 0))
        {
            Name = "Gulpit";

            AIBehavior = new GulpitAI(this);

            ChangeHeightState(Enumerations.HeightStates.Grounded);

            //These values are ripped from the battle scripts for Gulpit
            EntityProperties.AddStatusProperty(Enumerations.StatusTypes.Sleep, new StatusPropertyHolder(60d, 0));
            EntityProperties.AddStatusProperty(Enumerations.StatusTypes.Poison, new StatusPropertyHolder(80d, 0));
            EntityProperties.AddStatusProperty(Enumerations.StatusTypes.Dizzy, new StatusPropertyHolder(90d, 0));
            EntityProperties.AddStatusProperty(Enumerations.StatusTypes.Tiny, new StatusPropertyHolder(75d, 0));
            EntityProperties.AddStatusProperty(Enumerations.StatusTypes.Stop, new StatusPropertyHolder(85d, 0));
            EntityProperties.AddStatusProperty(Enumerations.StatusTypes.Paralyzed, new StatusPropertyHolder(80, 1));
            EntityProperties.AddStatusProperty(Enumerations.StatusTypes.DEFDown, new StatusPropertyHolder(100d, 0));
            EntityProperties.AddStatusProperty(Enumerations.StatusTypes.Fright, new StatusPropertyHolder(0d, 0));
            EntityProperties.AddStatusProperty(Enumerations.StatusTypes.Blown, new StatusPropertyHolder(50, 0));
            EntityProperties.AddStatusProperty(Enumerations.StatusTypes.Lifted, new StatusPropertyHolder(50, 0));
            EntityProperties.AddStatusProperty(Enumerations.StatusTypes.Frozen, new StatusPropertyHolder(0d, 0));
            EntityProperties.AddStatusProperty(Enumerations.StatusTypes.Electrified, new StatusPropertyHolder(10d, 0));

            Texture2D spriteSheet = AssetManager.Instance.LoadRawTexture2D($"{ContentGlobals.SpriteRoot}/Enemies/Gulpit.png");

            AnimManager.SetSpriteSheet(spriteSheet);

            AnimManager.AddAnimation(AnimationGlobals.IdleName, new LoopAnimation(spriteSheet, AnimationGlobals.InfiniteLoop,
                                                                                  new Animation.Frame(new Rectangle(152, 225, 64, 70), 600d),
                                                                                  new Animation.Frame(new Rectangle(376, 2, 64, 69), 600d, new Vector2(0, 1))));
            AnimManager.AddAnimation(AnimationGlobals.RunningName, new ReverseAnimation(spriteSheet, AnimationGlobals.InfiniteLoop,
                                                                                        new Animation.Frame(new Rectangle(372, 225, 69, 68), 250d),
                                                                                        new Animation.Frame(new Rectangle(376, 2, 64, 69), 250d),
                                                                                        new Animation.Frame(new Rectangle(485, 155, 66, 68), 250d)));
            AnimManager.AddAnimation(AnimationGlobals.HurtName, new Animation(spriteSheet,
                                                                              new Animation.Frame(new Rectangle(146, 164, 71, 59), 200d),
                                                                              new Animation.Frame(new Rectangle(480, 7, 70, 64), 200d)));
            AnimManager.AddAnimation(AnimationGlobals.DeathName, new Animation(spriteSheet,
                                                                               new Animation.Frame(new Rectangle(480, 7, 70, 64), 1000d)));

            AnimManager.AddAnimation(AnimationGlobals.GulpitBattleAnimations.LickName, new Animation(spriteSheet,
                                                                                                     new Animation.Frame(new Rectangle(370, 155, 70, 68), 300d),
                                                                                                     new Animation.Frame(new Rectangle(247, 229, 84, 66), 300d),
                                                                                                     new Animation.Frame(new Rectangle(449, 226, 105, 69), 300d),
                                                                                                     new Animation.Frame(new Rectangle(37, 1, 68, 78), 300d)));
            AnimManager.AddAnimation(AnimationGlobals.GulpitBattleAnimations.SpitRockName, new Animation(spriteSheet,
                                                                                                         new Animation.Frame(new Rectangle(246, 305, 83, 62), 200d),
                                                                                                         new Animation.Frame(new Rectangle(8, 298, 96, 69), 200d),
                                                                                                         new Animation.Frame(new Rectangle(151, 297, 65, 70), 200d),
                                                                                                         new Animation.Frame(new Rectangle(41, 224, 63, 71), 1000d),
                                                                                                         new Animation.Frame(new Rectangle(148, 4, 69, 67), 300d)));
        }
Esempio n. 24
0
        public Goombario() : base(new PartnerStats(PartnerGlobals.PartnerRanks.Normal, 50, 0, 0))
        {
            Name = "Goombario";
            PartnerDescription = "He can Headbonk on enemies!";
            PartnerType        = Enumerations.PartnerTypes.Goombario;

            Texture2D spriteSheet = AssetManager.Instance.LoadAsset <Texture2D>($"{ContentGlobals.SpriteRoot}/Characters/Goombario");

            AnimManager.SetSpriteSheet(spriteSheet);

            AnimManager.AddAnimation(AnimationGlobals.IdleName, new Animation(spriteSheet, new Animation.Frame(new Rectangle(67, 89, 26, 30), 1000d)));
            AnimManager.AddAnimation(AnimationGlobals.HurtName, new Animation(spriteSheet, new Animation.Frame(new Rectangle(49, 164, 30, 27), 1000d)));
            AnimManager.AddAnimation(AnimationGlobals.DeathName, new Animation(spriteSheet, new Animation.Frame(new Rectangle(81, 163, 30, 28), 1000d)));
        }
Esempio n. 25
0
        public Shell(int hp, int maxHP) : base(new Stats(0, maxHP, 0, 0, 0))
        {
            Name = "Shell";

            EntityType = EntityTypes.Neutral;

            //Set the HP to the amount of HP the Shell should have
            int hpDiff = BattleStats.MaxHP - hp;

            if (hpDiff > 0)
            {
                LoseHP(hpDiff);
            }

            //The Shell doesn't take turns
            BaseTurns = -99;

            //The Shell isn't targetable by normal means. It makes all attacks target it instead of the normal BattleEntity when active
            this.AddIntAdditionalProperty(AdditionalProperty.Untargetable, 1);

            AddStatusImmunities();

            Texture2D spriteSheet = AssetManager.Instance.LoadRawTexture2D($"{ContentGlobals.SpriteRoot}/Neutral/ShellShieldShell.png");

            AnimManager.SetSpriteSheet(spriteSheet);

            AnimManager.AddAnimation(AnimationGlobals.ShellBattleAnimations.FullHealthStateName, new Animation(spriteSheet,
                                                                                                               new Animation.Frame(new Rectangle(7, 3, 186, 130), 1000d)));

            AnimManager.AddAnimation(AnimationGlobals.ShellBattleAnimations.MildlyDamagedStateName, new Animation(spriteSheet,
                                                                                                                  new Animation.Frame(new Rectangle(7, 153, 186, 130), 1000d)));
            AnimManager.AddAnimationChildFrames(AnimationGlobals.ShellBattleAnimations.MildlyDamagedStateName,
                                                new Animation.Frame(new Rectangle(217, 4, 13, 47), 1000d, new Vector2(44, 1)));

            AnimManager.AddAnimation(AnimationGlobals.ShellBattleAnimations.SeverelyDamagedStateName, new Animation(spriteSheet,
                                                                                                                    new Animation.Frame(new Rectangle(7, 153, 186, 130), 1000d)));
            AnimManager.AddAnimationChildFrames(AnimationGlobals.ShellBattleAnimations.SeverelyDamagedStateName,
                                                new Animation.Frame(new Rectangle(242, 4, 42, 98), 1000d, new Vector2(36, 1)));

            Scale = new Vector2(.5f, .5f);
            Layer = .15f;

            //Subscribe to the removed event so we can remove the protection and clear the entity reference if it's removed
            BattleManager.Instance.EntityRemovedEvent -= EntityRemoved;
            BattleManager.Instance.EntityRemovedEvent += EntityRemoved;

            //Play the idle anim
            AnimManager.PlayAnimation(GetIdleAnim());
        }
        public override void LoadAnimations()
        {
            Texture2D spriteSheet = AssetManager.Instance.LoadRawTexture2D($"{ContentGlobals.SpriteRoot}/Enemies/SkyGuy.png");

            AnimManager.SetSpriteSheet(spriteSheet);

            LoopAnimation idle = new LoopAnimation(null, AnimationGlobals.InfiniteLoop,
                                                   new Animation.Frame(new Rectangle(117, 256, 34, 35), 200d),
                                                   new Animation.Frame(new Rectangle(163, 263, 38, 37), 200d));

            AnimManager.AddAnimation(AnimationGlobals.IdleName, idle);
            idle.SetChildFrames(
                new Animation.Frame(new Rectangle(13, 259, 2, 31), 200d, new Vector2(0, 18), -.0001f),
                new Animation.Frame(new Rectangle(13, 259, 2, 31), 200d, new Vector2(0, 19), -.0001f));
        }
Esempio n. 27
0
        public override void LoadAnimations()
        {
            Texture2D spriteSheet = AssetManager.Instance.LoadRawTexture2D($"{ContentGlobals.SpriteRoot}/Characters/Goompa.png");

            AnimManager.SetSpriteSheet(spriteSheet);

            AnimManager.AddAnimation(AnimationGlobals.IdleName, new ReverseAnimation(null, AnimationGlobals.InfiniteLoop,
                                                                                     new Animation.Frame(new Rectangle(3, 124, 26, 35), 1000),
                                                                                     new Animation.Frame(new Rectangle(35, 123, 26, 36), 100, new Vector2(0, -1)),
                                                                                     new Animation.Frame(new Rectangle(67, 121, 26, 38), 1000, new Vector2(0, -3))));

            AnimManager.AddAnimation(AnimationGlobals.PlayerBattleAnimations.ChoosingActionName, new Animation(null,
                                                                                                               new Animation.Frame(new Rectangle(3, 124, 26, 35), 100d)));
            AnimManager.AddAnimation(AnimationGlobals.PlayerBattleAnimations.DangerChoosingActionName, new Animation(null,
                                                                                                                     new Animation.Frame(new Rectangle(3, 124, 26, 35), 100d)));

            AnimManager.AddAnimation(AnimationGlobals.HurtName, new Animation(null,
                                                                              new Animation.Frame(new Rectangle(129, 88, 30, 31), 100d)));
            AnimManager.AddAnimation(AnimationGlobals.DeathName, new Animation(null,
                                                                               new Animation.Frame(new Rectangle(129, 88, 30, 31), 400d)));
            AnimManager.AddAnimation(AnimationGlobals.SpikedTipHurtName, new Animation(null,
                                                                                       new Animation.Frame(new Rectangle(129, 88, 30, 31), 100d)));

            AnimManager.AddAnimation(AnimationGlobals.RunningName, new ReverseAnimation(null, AnimationGlobals.InfiniteLoop,
                                                                                        new Animation.Frame(new Rectangle(35, 164, 28, 35), 100d),
                                                                                        new Animation.Frame(new Rectangle(3, 124, 26, 35), 100d),
                                                                                        new Animation.Frame(new Rectangle(161, 83, 29, 36), 100d)));

            AnimManager.AddAnimation(AnimationGlobals.PlayerBattleAnimations.DangerName, new ReverseAnimation(null, AnimationGlobals.InfiniteLoop,
                                                                                                              new Animation.Frame(new Rectangle(3, 124, 26, 35), 1000),
                                                                                                              new Animation.Frame(new Rectangle(35, 123, 26, 36), 100, new Vector2(0, -1)),
                                                                                                              new Animation.Frame(new Rectangle(67, 121, 26, 38), 1000, new Vector2(0, -3))));
            AnimManager.AddAnimation(AnimationGlobals.StatusBattleAnimations.InjuredName, new Animation(null,
                                                                                                        new Animation.Frame(new Rectangle(129, 88, 30, 31), 100d)));
            AnimManager.AddAnimation(AnimationGlobals.StatusBattleAnimations.SleepName, new Animation(null,
                                                                                                      new Animation.Frame(new Rectangle(129, 88, 30, 31), 100d)));
            AnimManager.AddAnimation(AnimationGlobals.StatusBattleAnimations.DizzyName, new Animation(null,
                                                                                                      new Animation.Frame(new Rectangle(129, 88, 30, 31), 100d)));
            AnimManager.AddAnimation(AnimationGlobals.StatusBattleAnimations.ConfusedName, new Animation(null,
                                                                                                         new Animation.Frame(new Rectangle(129, 88, 30, 31), 100d)));
            AnimManager.AddAnimation(AnimationGlobals.StatusBattleAnimations.StoneName, new Animation(null,
                                                                                                      new Animation.Frame(new Rectangle(3, 124, 26, 35), 1000)));

            AnimManager.AddAnimation(AnimationGlobals.TalkName, new ReverseAnimation(spriteSheet, AnimationGlobals.InfiniteLoop,
                                                                                     new Animation.Frame(new Rectangle(3, 124, 26, 35), 32d),
                                                                                     new Animation.Frame(new Rectangle(3, 163, 26, 36), 32d, new Vector2(0, -1)),
                                                                                     new Animation.Frame(new Rectangle(163, 122, 26, 37), 32d, new Vector2(0, -2))));
        }
Esempio n. 28
0
        public Paragoomba()
        {
            Name = "Paragoomba";

            EntityProperties.SetVulnerableDamageEffects(Enumerations.DamageEffects.RemovesWings);

            AIBehavior = new ParagoombaAI(this);

            ChangeHeightState(Enumerations.HeightStates.Airborne);

            Texture2D spriteSheet = AssetManager.Instance.LoadRawTexture2D($"{ContentGlobals.SpriteRoot}/Enemies/Paragoomba.png");

            AnimManager.SetSpriteSheet(spriteSheet);

            AnimManager.AddAnimation(AnimationGlobals.WingedBattleAnimations.WingedIdleName, new LoopAnimation(spriteSheet, AnimationGlobals.InfiniteLoop,
                                                                                                               new Animation.Frame(new Rectangle(129, 45, 27, 28), 200d),
                                                                                                               new Animation.Frame(new Rectangle(1, 7, 27, 30), 200d)));
            AnimManager.AddAnimation(AnimationGlobals.WingedBattleAnimations.FlyingName, new LoopAnimation(spriteSheet, AnimationGlobals.InfiniteLoop,
                                                                                                           new Animation.Frame(new Rectangle(129, 45, 27, 28), 100d),
                                                                                                           new Animation.Frame(new Rectangle(1, 7, 27, 30), 100d)));
            AnimManager.AddAnimation(AnimationGlobals.HurtName, new Animation(spriteSheet,
                                                                              new Animation.Frame(new Rectangle(97, 48, 29, 27), 80d),
                                                                              new Animation.Frame(new Rectangle(98, 89, 27, 26), 80d)));
            AnimManager.AddAnimation(AnimationGlobals.DeathName, new Animation(spriteSheet, new Animation.Frame(new Rectangle(98, 89, 27, 26), 1000d)));

            AnimManager.AddAnimation(AnimationGlobals.ParagoombaBattleAnimations.DiveKickName, new Animation(spriteSheet,
                                                                                                             new Animation.Frame(new Rectangle(33, 89, 27, 30), 1000d)));

            //Wings (for the first idle frame, at least) are offset (-7, -1 (or left 7, up 1)) from the Paragoomba's body
            //Both Wings for each frame are in a single cropped texture
            //The wings are rendered underneath the Paragoomba's body

            AnimManager.AddAnimationChildFrames(AnimationGlobals.WingedBattleAnimations.WingedIdleName,
                                                new Animation.Frame(new Rectangle(3, 166, 41, 18), 200d, new Vector2(-7, -1), -.01f),
                                                new Animation.Frame(new Rectangle(50, 161, 41, 14), 200d, new Vector2(-7, 13), -.01f));
            AnimManager.AddAnimationChildFrames(AnimationGlobals.WingedBattleAnimations.FlyingName,
                                                new Animation.Frame(new Rectangle(3, 166, 41, 18), 100d, new Vector2(-7, -1), -.01f),
                                                new Animation.Frame(new Rectangle(50, 161, 41, 14), 100d, new Vector2(-7, 13), -.01f));
            AnimManager.AddAnimationChildFrames(AnimationGlobals.HurtName,
                                                new Animation.Frame(new Rectangle(3, 166, 41, 18), 80d, new Vector2(-4, -1), -.01f),
                                                new Animation.Frame(new Rectangle(3, 166, 41, 18), 80d, new Vector2(-4, -1), -.01f));
            AnimManager.AddAnimationChildFrames(AnimationGlobals.DeathName,
                                                new Animation.Frame(new Rectangle(3, 166, 41, 18), 1000d, new Vector2(-4, -1), -.01f));

            AnimManager.AddAnimationChildFrames(AnimationGlobals.ParagoombaBattleAnimations.DiveKickName,
                                                new Animation.Frame(new Rectangle(120, 121, 31, 21), 1000d, new Vector2(-1, -9), -.01f));
        }
Esempio n. 29
0
        public SpikedGoomba()
        {
            Name        = "Spiked Goomba";
            BattleStats = new Stats(1, 2, 0, 1, 0);

            EntityProperties.AddPhysAttribute(Enumerations.PhysicalAttributes.TopSpiked);

            Texture2D spriteSheet = AssetManager.Instance.LoadAsset <Texture2D>($"{ContentGlobals.SpriteRoot}/Enemies/SpikedGoomba");

            AnimManager.SetSpriteSheet(spriteSheet);

            AnimManager.AddAnimation(AnimationGlobals.IdleName, new Animation(spriteSheet, new Animation.Frame(new Rectangle(34, 153, 28, 39), 1000d)));
            AnimManager.AddAnimation(AnimationGlobals.HurtName, new Animation(spriteSheet,
                                                                              new Animation.Frame(new Rectangle(32, 68, 31, 36), 500d),
                                                                              new Animation.Frame(new Rectangle(128, 108, 31, 36), 500d)));
            AnimManager.AddAnimation(AnimationGlobals.DeathName, new Animation(spriteSheet, new Animation.Frame(new Rectangle(128, 108, 31, 36), 1000d)));
        }
Esempio n. 30
0
        public Bow() : base(new PartnerStats(PartnerGlobals.PartnerRanks.Normal, 50, 0, 0))
        {
            Name = "Bow";
            PartnerDescription = "She can become transparent,\nand her specialty is slapping.";
            PartnerType        = Enumerations.PartnerTypes.Bow;

            ChangeHeightState(Enumerations.HeightStates.Airborne);

            Texture2D spriteSheet = AssetManager.Instance.LoadRawTexture2D($"{ContentGlobals.SpriteRoot}/Characters/Bow.png");

            AnimManager.SetSpriteSheet(spriteSheet);

            AnimManager.AddAnimation(AnimationGlobals.IdleName, new ReverseAnimation(null, AnimationGlobals.InfiniteLoop,
                                                                                     new Animation.Frame(new Rectangle(150, 123, 41, 34), 100d, new Vector2(0, -1)),
                                                                                     new Animation.Frame(new Rectangle(54, 163, 41, 34), 100d),
                                                                                     new Animation.Frame(new Rectangle(54, 43, 41, 34), 100d, new Vector2(0, 1))));
            AnimManager.AddAnimation(AnimationGlobals.PlayerBattleAnimations.DangerName, new ReverseAnimation(null, AnimationGlobals.InfiniteLoop,
                                                                                                              new Animation.Frame(new Rectangle(150, 123, 41, 34), 100d, new Vector2(0, -1)),
                                                                                                              new Animation.Frame(new Rectangle(54, 163, 41, 34), 100d),
                                                                                                              new Animation.Frame(new Rectangle(54, 43, 41, 34), 100d, new Vector2(0, 1))));

            AnimManager.AddAnimation(AnimationGlobals.RunningName, new ReverseAnimation(null, AnimationGlobals.InfiniteLoop,
                                                                                        new Animation.Frame(new Rectangle(150, 123, 41, 34), 60d, new Vector2(0, -1)),
                                                                                        new Animation.Frame(new Rectangle(54, 163, 41, 34), 60d),
                                                                                        new Animation.Frame(new Rectangle(54, 43, 41, 34), 60d, new Vector2(0, 1))));

            AnimManager.AddAnimation(AnimationGlobals.HurtName, new Animation(null,
                                                                              new Animation.Frame(new Rectangle(151, 44, 39, 33), 100d),
                                                                              new Animation.Frame(new Rectangle(199, 44, 39, 33), 100d),
                                                                              new Animation.Frame(new Rectangle(247, 44, 39, 33), 100d)));
            AnimManager.AddAnimation(AnimationGlobals.StatusBattleAnimations.DizzyName, new LoopAnimation(null, AnimationGlobals.InfiniteLoop,
                                                                                                          new Animation.Frame(new Rectangle(151, 44, 39, 33), 100d),
                                                                                                          new Animation.Frame(new Rectangle(199, 44, 39, 33), 100d),
                                                                                                          new Animation.Frame(new Rectangle(247, 44, 39, 33), 100d)));
            AnimManager.AddAnimation(AnimationGlobals.StatusBattleAnimations.ConfusedName, new LoopAnimation(null, AnimationGlobals.InfiniteLoop,
                                                                                                             new Animation.Frame(new Rectangle(151, 44, 39, 33), 100d),
                                                                                                             new Animation.Frame(new Rectangle(199, 44, 39, 33), 100d),
                                                                                                             new Animation.Frame(new Rectangle(247, 44, 39, 33), 100d)));

            AnimManager.AddAnimation(AnimationGlobals.DeathName, new Animation(null, new Animation.Frame(new Rectangle(199, 44, 39, 33), 1000d)));

            AnimManager.AddAnimation(AnimationGlobals.PlayerBattleAnimations.ChoosingActionName, new Animation(null, new Animation.Frame(new Rectangle(151, 4, 39, 33), 1000d)));
            AnimManager.AddAnimation(AnimationGlobals.PlayerBattleAnimations.DangerChoosingActionName, new Animation(null, new Animation.Frame(new Rectangle(151, 4, 39, 33), 1000d)));
        }