public TornadoJump()
        {
            Name = "Tornado Jump";

            MoveInfo = new MoveActionData(null, "Execute superbly to damage\nall midair enemies.", MoveResourceTypes.FP, 3,
                                          CostDisplayTypes.Shown, MoveAffectionTypes.Enemy,
                                          TargetSelectionMenu.EntitySelectionType.Single, false,
                                          new HeightStates[] { HeightStates.Grounded, HeightStates.Hovering, HeightStates.Airborne });

            //The second part's damage is Piercing, starts as 2, and cannot be increased with Power Plus, All Or Nothing, or P-Up, D-Down
            //Equipping a 2nd badge increases the FP cost from 3 to 6 and increases the damage of the Jump by 1 and the air attack by 2

            //The base damage is Mario's current Boot 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.BootLevel;
            }

            DamageInfo = new DamageData(baseDamage, Elements.Normal, false, ContactTypes.TopDirect, null,
                                        DamageEffects.FlipsShelled | DamageEffects.RemovesWings);

            AerialDamage = new DamageData(2, Elements.Normal, true, ContactTypes.None, null, DamageEffects.None);

            TornadoJumpSequence tornadoJumpSequence = new TornadoJumpSequence(this);

            SetMoveSequence(tornadoJumpSequence);

            actionCommand = new TornadoJumpCommand(MoveSequence, tornadoJumpSequence.JumpDuration,
                                                   (int)(tornadoJumpSequence.JumpDuration / 2f), 10000d);
        }
Example #2
0
        public TornadoJumpAction(BattleEntity user) : base(user)
        {
            Name = "Tornado Jump";

            MoveInfo = new MoveActionData(new CroppedTexture2D(AssetManager.Instance.LoadRawTexture2D($"{ContentGlobals.BattleGFX}.png"), new Rectangle(939, 390, 38, 34)),
                                          "Execute superbly to damage\nall midair enemies.", MoveResourceTypes.FP, 3,
                                          CostDisplayTypes.Shown, MoveAffectionTypes.Other,
                                          Enumerations.EntitySelectionType.Single, false,
                                          new HeightStates[] { HeightStates.Grounded, HeightStates.Hovering, HeightStates.Airborne }, User.GetOpposingEntityType(), EntityTypes.Neutral);

            //The base damage is Mario's current Boot 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.BootLevel;
            }

            DamageInfo = new DamageData(baseDamage, Elements.Normal, false, ContactTypes.TopDirect, ContactProperties.None, null,
                                        DamageEffects.FlipsShelled | DamageEffects.RemovesWings);

            //Second part
            //The second part's damage is Piercing, starts as 2, and cannot be increased with Power Plus, All Or Nothing, or P-Up, D-Down
            //Equipping a 2nd badge increases the FP cost from 3 to 6 and increases the damage of the Jump by 1 and the air attack by 2
            TornadoJumpSecondPart = new MoveAction(User, string.Empty, new MoveActionData(null, string.Empty, MoveResourceTypes.FP, 0f, CostDisplayTypes.Shown,
                                                                                          MoveAffectionTypes.Other, Enumerations.EntitySelectionType.All, false, new HeightStates[] { HeightStates.Hovering, HeightStates.Airborne },
                                                                                          new EntityTypes[] { EntityTypes.Enemy }), new NoSequence(TornadoJumpSecondPart),
                                                   new DamageData(2, Elements.Normal, true, ContactTypes.None, ContactProperties.Ranged, null, DamageEffects.None));

            TornadoJumpSequence tornadoJumpSequence = new TornadoJumpSequence(this, TornadoJumpSecondPart);

            SetMoveSequence(tornadoJumpSequence);

            actionCommand = new TornadoJumpCommand(MoveSequence, tornadoJumpSequence.JumpDuration,
                                                   (int)(tornadoJumpSequence.JumpDuration / 2f), 10000d);
        }