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