コード例 #1
0
        public HammerActionCommandUI(HammerCommand hammerCommand) : base(hammerCommand, new Vector2(250, 230), 0, true)
        {
            Texture2D battleGFX = AssetManager.Instance.LoadRawTexture2D($"{ContentGlobals.BattleGFX}.png");

            LightBarEnd    = new CroppedTexture2D(battleGFX, new Rectangle(795, 14, 15, 22));
            LightBarMiddle = new CroppedTexture2D(battleGFX, new Rectangle(813, 14, 1, 22));
        }
コード例 #2
0
        public MegaSmashAction(BattleEntity user) : base(user)
        {
            Name = "Mega Smash";

            MoveInfo.Icon.SetRect(new Rectangle(907, 73, 24, 24));
            MoveInfo.Description  = "Hammers an enemy with a huge\namount of attack power.";
            MoveInfo.ResourceCost = 6;

            SetMoveSequence(new MegaSmashSequence(this));
            actionCommand = new HammerCommand(MoveSequence, 4, 1000d);
        }
コード例 #3
0
        public PowerSmashAction(BattleEntity user, int numEquipped) : base(user)
        {
            Name = "Power Smash";

            MoveInfo.Description = "Hammer a single enemy using\nlots of Attack power.";

            //Each additional Power Smash costs 2 more FP
            MoveInfo.ResourceCost = 2 * numEquipped;

            //Each additional Power Smash adds 1 more damage
            SetMoveSequence(new HammerSequence(this, 2 + (numEquipped - 1)));
            actionCommand = new HammerCommand(MoveSequence, 4, 800d);
        }
コード例 #4
0
        public HeadRattleAction(BattleEntity user) : base(user)
        {
            Name = "Head Rattle";
            MoveInfo.ResourceCost = 2;
            MoveInfo.Description  = "Wear this to use Head Rattle. " +
                                    "2 FP are required to use this attack, which can confuse enemies if executed superbly. " +
                                    "Wearing two or more of these badges requires more FP for the move, but enemies stay confused longer.";

            DamageInfo.Statuses = new StatusChanceHolder[] { new StatusChanceHolder(100d, new ConfusedStatus(2)) };

            SetMoveSequence(new HammerSequence(this, 0));
            actionCommand = new HammerCommand(MoveSequence, 4, 1000d);
        }
コード例 #5
0
        public ShellToss()
        {
            Name = "Shell Toss";

            MoveInfo = new MoveActionData(null, "Shoot yourself at an enemy.", MoveResourceTypes.FP, 0, CostDisplayTypes.Shown,
                                          MoveAffectionTypes.Enemy, TargetSelectionMenu.EntitySelectionType.First, true,
                                          new HeightStates[] { HeightStates.Grounded, HeightStates.Hovering });

            DamageInfo = new DamageData(1, Elements.Normal, false, ContactTypes.None, null, DamageEffects.RemovesSegment);

            SetMoveSequence(new ShellTossSequence(this));
            actionCommand = new HammerCommand(MoveSequence, 4, 500d);
        }
コード例 #6
0
        public IceSmash()
        {
            Name = "Ice Smash";
            MoveInfo.ResourceCost = 3;
            MoveInfo.Description  = "Wear this to use Ice Smash. " +
                                    "3 FP are required to use this attack, which can freeze and immobilize an enemy if executed superbly. " +
                                    "Wearing two or more of these badges requires more FP for the move, but enemies stay frozen longer.";

            DamageInfo.DamagingElement = Enumerations.Elements.Ice;
            DamageInfo.Statuses        = new StatusChanceHolder[] { new StatusChanceHolder(100d, new FrozenStatus(3)) };

            SetMoveSequence(new HammerSequence(this));
            actionCommand = new HammerCommand(MoveSequence, 4, 1000d);
        }
コード例 #7
0
        public ShellToss()
        {
            Name = "Shell Toss";

            MoveInfo = new MoveActionData(new CroppedTexture2D(AssetManager.Instance.LoadRawTexture2D($"{ContentGlobals.BattleGFX}.png"), new Rectangle(216, 845, 22, 22)),
                                          "Shoot yourself at an enemy.", MoveResourceTypes.FP, 0, CostDisplayTypes.Shown,
                                          MoveAffectionTypes.Other, TargetSelectionMenu.EntitySelectionType.First, true,
                                          new HeightStates[] { HeightStates.Grounded, HeightStates.Hovering }, User.GetOpposingEntityType(), EntityTypes.Neutral);

            DamageInfo = new DamageData(1, Elements.Normal, false, ContactTypes.SideDirect, ContactProperties.Protected, null, DamageEffects.RemovesSegment);

            SetMoveSequence(new ShellTossSequence(this));
            actionCommand = new HammerCommand(MoveSequence, 4, 500d);
        }
コード例 #8
0
        public QuakeHammerAction(int numBadges)
        {
            Name = "Quake Hammer";

            MoveInfo = new MoveActionData(new CroppedTexture2D(AssetManager.Instance.LoadRawTexture2D($"{ContentGlobals.BattleGFX}.png"), new Rectangle(907, 102, 23, 24)),
                                          "Slightly damage all ground\nenemies.", MoveResourceTypes.FP, 3 /*2 FP in PM*/, CostDisplayTypes.Shown,
                                          MoveAffectionTypes.Other, TargetSelectionMenu.EntitySelectionType.All, true,
                                          new HeightStates[] { HeightStates.Grounded, HeightStates.Ceiling }, User.GetOpposingEntityType());

            //Scale by the number of badges the move has
            int damage = BaseDamage + (DamageScalePerBadge * (numBadges - 1));

            DamageInfo = new DamageData(damage, Elements.Normal, true, ContactTypes.None, ContactProperties.Ranged, null, DamageEffects.FlipsShelled | DamageEffects.FlipsClefts);

            SetMoveSequence(new QuakeHammerSequence(this));
            actionCommand = new HammerCommand(MoveSequence, 4, 500d);
        }
コード例 #9
0
        public ShellTossAction(BattleEntity user) : base(user)
        {
            Name = "Shell Toss";

            MoveInfo = new MoveActionData(new CroppedTexture2D(AssetManager.Instance.LoadRawTexture2D($"{ContentGlobals.BattleGFX}.png"), new Rectangle(216, 845, 22, 22)),
                                          "Shoot yourself at an enemy.", MoveResourceTypes.FP, 0, CostDisplayTypes.Shown,
                                          MoveAffectionTypes.Other, Enumerations.EntitySelectionType.First, true,
                                          new HeightStates[] { HeightStates.Grounded, HeightStates.Hovering }, User.GetOpposingEntityType(), EntityTypes.Neutral);

            DamageInfo = new DamageData(1, Elements.Normal, false, ContactTypes.SideDirect, ContactProperties.Protected, null, DamageEffects.RemovesSegment);

            //If a partner (Kooper or Koops) is using this move, the base damage is the Partner rank
            PartnerStats partnerStats = User.BattleStats as PartnerStats;

            if (partnerStats != null)
            {
                DamageInfo.Damage = (int)partnerStats.PartnerRank;
            }

            SetMoveSequence(new ShellTossSequence(this));
            actionCommand = new HammerCommand(MoveSequence, 4, 500d);
        }
コード例 #10
0
        public Hammer()
        {
            Name = "Hammer";

            MoveInfo = new MoveActionData(null, "Whack an enemy with your Hammer.", MoveResourceTypes.FP, 0, CostDisplayTypes.Shown,
                                          MoveAffectionTypes.Enemy, TargetSelectionMenu.EntitySelectionType.First, true,
                                          new HeightStates[] { HeightStates.Grounded, HeightStates.Hovering });

            //The base damage for Hammer is Mario's current Hammer level
            //If Mario isn't the one using this move, it defaults to 1
            int        baseDamage = 1;
            MarioStats marioStats = User.BattleStats as MarioStats;

            if (marioStats != null)
            {
                baseDamage = (int)marioStats.HammerLevel;
            }

            DamageInfo = new DamageData(baseDamage, Elements.Normal, false, ContactTypes.Approach, null, DamageEffects.None);

            SetMoveSequence(new HammerSequence(this));
            actionCommand = new HammerCommand(MoveSequence, 4, 500d);
        }
コード例 #11
0
        public Hammer()
        {
            Name = "Hammer";

            MoveInfo = new MoveActionData(new CroppedTexture2D(AssetManager.Instance.LoadRawTexture2D($"{ContentGlobals.BattleGFX}.png"), new Rectangle(216, 845, 22, 22)),
                                          "Whack an enemy with your Hammer.", MoveResourceTypes.FP, 0, CostDisplayTypes.Shown,
                                          MoveAffectionTypes.Other, TargetSelectionMenu.EntitySelectionType.First, true,
                                          new HeightStates[] { HeightStates.Grounded, HeightStates.Hovering }, User.GetOpposingEntityType(), EntityTypes.Neutral);

            //The base damage for Hammer is Mario's current Hammer level
            //If Mario isn't the one using this move, it defaults to 1
            int        baseDamage = 1;
            MarioStats marioStats = User.BattleStats as MarioStats;

            if (marioStats != null)
            {
                baseDamage = (int)marioStats.HammerLevel;
            }

            DamageInfo = new DamageData(baseDamage, Elements.Normal, false, ContactTypes.SideDirect, ContactProperties.WeaponDirect, null, DamageEffects.None);

            SetMoveSequence(new HammerSequence(this, 0));
            actionCommand = new HammerCommand(MoveSequence, 4, 500d);
        }