Esempio n. 1
0
        public DragonProjectile3SS(Dragon mobile, Vector2 initialPosition, Vector2 finalPosition, float spawnTime)
            : base(mobile, ShotType.SS, Parameter.ProjectileDragonSSExplosionRadius, Parameter.ProjectileDragonSSBaseDamage,
                   projectileInitialPosition: initialPosition)
        {
            //Calculate the angle of the swords
            double angle = (float)Helper.AngleBetween(finalPosition, initialPosition);

            //Initializing Flipbook
            FlipbookList.Add(new Flipbook(
                                 initialPosition, new Vector2(49.5f, 40),
                                 99, 80, "Graphics/Tank/Dragon/Shot3",
                                 new List <AnimationInstance>()
            {
                new AnimationInstance()
                {
                    StartingFrame = 0, EndingFrame = 17, TimePerFrame = 1 / 20f
                },
                new AnimationInstance()
                {
                    StartingFrame = 18, EndingFrame = 40, TimePerFrame = 1 / 20f
                },
            }, DepthParameter.Projectile, rotation: (float)angle));

            SpawnTime = spawnTime;

            animationState = ProjectileAnimationState.Spawning;

            IsAbleToRefreshPosition = false;

            InitializeMovement();
        }
Esempio n. 2
0
        public TricoProjectile3(Trico mobile)
            : base(mobile, ShotType.SS, Parameter.ProjectileTricoSSExplosionRadius, Parameter.ProjectileTricoSSBaseDamage)
        {
            Mobile = mobile;

            rotationExplosionOffset = mobile.Facing == Facing.Left ? -1 : 1;

            //Initializing Flipbook
            FlipbookList.Add(new Flipbook(
                                 mobile.Crosshair.CannonPosition, new Vector2(40, 17),
                                 66, 36, "Graphics/Tank/Trico/Bullet3",
                                 new AnimationInstance()
            {
                StartingFrame = 0, EndingFrame = 7, TimePerFrame = 1 / 19f
            },
                                 DepthParameter.Projectile, angle));

            hasExploded    = false;
            explosionTimer = 0;

            //Physics/Trajectory setups
            mass          = Parameter.ProjectileTricoSSMass;
            windInfluence = Parameter.ProjectileTricoSSWindInfluence;

            SpawnTime = 0.5f;
        }
Esempio n. 3
0
        public TurtleProjectile3SS(Turtle mobile, Vector2 positionModifier, float force, float angle)
            : base(mobile, ShotType.SS, Parameter.ProjectileTurtleSSEExplosionRadius, Parameter.ProjectileTurtleSSEBaseDamage,
                   projectileInitialPosition: positionModifier)
        {
            //Initializing Flipbook
            FlipbookList.Add(new Flipbook(
                                 positionModifier, new Vector2(15, 13.5f),
                                 30, 27, "Graphics/Tank/Turtle/Shot3",
                                 new AnimationInstance()
            {
                StartingFrame = 0, EndingFrame = 14, TimePerFrame = 1 / 20f
            },
                                 DepthParameter.Projectile, angle));

            FlipbookList[0].JumpToRandomAnimationFrame();

            //Physics/Trajectory setups
            mass          = Parameter.ProjectileTurtleSSMass;
            windInfluence = Parameter.ProjectileTurtleSSWindInfluence;

            xSpeedComponent = (float)Math.Round(Math.Cos(angle), 3);
            ySpeedComponent = (float)Math.Round(Math.Sin(angle), 3);

            yMovement.Preset(ySpeedComponent * force * Parameter.ProjectileMovementForceFactor / mass, Parameter.ProjectileMovementGravity + ywSpeedComponent * wForce * windInfluence);
            xMovement.Preset(xSpeedComponent * force * Parameter.ProjectileMovementForceFactor / mass, xwSpeedComponent * wForce * windInfluence);
        }
Esempio n. 4
0
        public ArmorProjectile2(Armor mobile)
            : base(mobile, ShotType.S2, Parameter.ProjectileArmorS2ExplosionRadius, Parameter.ProjectileArmorS2BaseDamage)
        {
            Mobile = mobile;

            primaryExplosion = true;

            //Initializing Flipbook
            FlipbookList.Add(new Flipbook(
                                 mobile.Crosshair.CannonPosition, new Vector2(31, 14),
                                 63, 28, "Graphics/Tank/Armor/Bullet2",
                                 new List <AnimationInstance>()
            {
                new AnimationInstance()
                {
                    StartingFrame = 0, EndingFrame = 4, TimePerFrame = 1 / 20f
                }
            }, DepthParameter.Projectile, angle));

            //Physics/Trajectory setups
            mass          = Parameter.ProjectileArmorS2Mass;
            windInfluence = Parameter.ProjectileArmorS2WindInfluence;

            SpawnTime = 0.6;
        }
Esempio n. 5
0
        public DummyProjectile(Mobile mobile, ShotType shotType, int explosionRadius, int baseDamage, bool canCollide = true)
            : base(mobile, shotType, explosionRadius, baseDamage, canCollide: canCollide)
        {
            this.Mobile = mobile;

            //Initializing Flipbook
            FlipbookList.Add(new Flipbook(
                                 mobile.Crosshair.CannonPosition, Vector2.One / 2,
                                 1, 1, "Misc/Dummy",
                                 new List <AnimationInstance>()
            {
                new AnimationInstance()
            }, DepthParameter.Projectile, angle));
        }
Esempio n. 6
0
        public MageProjectile3(Mage mobile)
            : base(mobile, ShotType.S1, Parameter.ProjectileMageS2ExplosionRadius, Parameter.ProjectileMageS2BaseDamage)
        {
            //Initializing Flipbook
            FlipbookList.Add(new Flipbook(
                                 mobile.Crosshair.CannonPosition, new Vector2(27, 27),
                                 54, 54, "Graphics/Tank/Mage/Bullet3",
                                 new AnimationInstance()
            {
                StartingFrame = 0, EndingFrame = 14, TimePerFrame = 1 / 20f
            },
                                 DepthParameter.Projectile, angle));

            //Physics/Trajectory setups
            mass          = Parameter.ProjectileMageS2Mass;
            windInfluence = Parameter.ProjectileMageS2WindInfluence;
        }
Esempio n. 7
0
        public RaonProjectile1(RaonLauncher mobile)
            : base(mobile, ShotType.S1, Parameter.ProjectileRaonLauncherS1ExplosionRadius, Parameter.ProjectileRaonLauncherS1BaseDamage)
        {
            //Initializing Flipbook
            FlipbookList.Add(new Flipbook(
                                 mobile.Crosshair.CannonPosition, new Vector2(19, 21),
                                 38, 42, "Graphics/Tank/RaonLauncher/Bullet1",
                                 new List <AnimationInstance>()
            {
                new AnimationInstance()
                {
                    StartingFrame = 0, EndingFrame = 39, TimePerFrame = 1 / 15f
                }
            }, DepthParameter.Projectile, angle));

            FlipbookList[0].SetTransparency(0);
        }
Esempio n. 8
0
        public LightningProjectile1(Lightning mobile) : base(mobile, ShotType.S1, Parameter.ProjectileLightningS1ExplosionRadius, Parameter.ProjectileLightningS1BaseDamage)
        {
            //Initializing Flipbook
            FlipbookList.Add(new Flipbook(
                                 mobile.Crosshair.CannonPosition, new Vector2(30f, 31),
                                 53, 60, "Graphics/Tank/Lightning/Bullet1",
                                 new List <AnimationInstance>()
            {
                new AnimationInstance()
                {
                    StartingFrame = 0, EndingFrame = 9, TimePerFrame = 1 / 20f
                }
            }, DepthParameter.Projectile, angle));

            //Physics/Trajectory setups
            mass          = Parameter.ProjectileLightningS1Mass;
            windInfluence = Parameter.ProjectileLightningS1WindInfluence;
        }
Esempio n. 9
0
        public KnightProjectile(Knight Mobile, ShotType shotType)
            : base(Mobile, shotType, 0, 0)
        {
            //Initializing Flipbook
            FlipbookList.Add(new Flipbook(
                                 Mobile.Crosshair.CannonPosition, new Vector2(31, 32),
                                 64, 66, "Graphics/Tank/Knight/Shot1",
                                 new List <AnimationInstance>()
            {
                new AnimationInstance()
                {
                    StartingFrame = 0, EndingFrame = 19, TimePerFrame = 1 / 20f
                }
            }, DepthParameter.Projectile, angle));

            //Knightsword Animation
            Mobile.Satellite.AttackingTarget = FlipbookList[0];
        }
Esempio n. 10
0
        public TricoProjectile2(Trico mobile)
            : base(mobile, ShotType.S2, Parameter.ProjectileTricoS2ExplosionRadius, Parameter.ProjectileTricoS2BaseDamage)
        {
            //Initializing Flipbook
            FlipbookList.Add(new Flipbook(
                                 mobile.Crosshair.CannonPosition, new Vector2(16, 16),
                                 32, 32, "Graphics/Tank/Trico/Bullet2",
                                 new List <AnimationInstance>()
            {
                new AnimationInstance()
                {
                    StartingFrame = 0, EndingFrame = 7, TimePerFrame = 1 / 20f
                }
            },
                                 DepthParameter.Projectile, angle));

            FlipbookList[0].SetTransparency(0);
        }
Esempio n. 11
0
        public TurtleProjectile3(Turtle mobile)
            : base(mobile, ShotType.SS, Parameter.ProjectileTurtleSSExplosionRadius, Parameter.ProjectileTurtleSSBaseDamage)
        {
            //Initializing Flipbook
            FlipbookList.Add(new Flipbook(
                                 mobile.Crosshair.CannonPosition, new Vector2(26, 22.5f),
                                 52, 45, "Graphics/Tank/Turtle/Bullet3",
                                 new AnimationInstance()
            {
                StartingFrame = 0, EndingFrame = 14, TimePerFrame = 1 / 20f
            },
                                 DepthParameter.Projectile, angle));

            bubbleAnimation = ProjectileAnimationState.Closed;

            //Physics/Trajectory setups
            mass          = Parameter.ProjectileTurtleSSMass;
            windInfluence = Parameter.ProjectileTurtleSSWindInfluence;
        }
Esempio n. 12
0
        public TeleportationBeacon(Mobile mobile)
            : base(mobile, ShotType.TeleportationBeacon, 0, 0)
        {
            //Initializing Flipbook
            FlipbookList.Add(new Flipbook(
                                 mobile.Crosshair.CannonPosition, new Vector2(30, 18),
                                 43, 39, "Graphics/Tank/Common/TeleportBullet",
                                 new List <AnimationInstance>()
            {
                new AnimationInstance()
                {
                    StartingFrame = 0, EndingFrame = 11, TimePerFrame = 1 / 20f
                }
            }, DepthParameter.Projectile, angle));

            //Physics/Trajectory setups
            mass          = Parameter.ProjectileTeleportationBeaconMass;
            windInfluence = Parameter.ProjectileTeleportationBeaconWindInfluence;
        }
Esempio n. 13
0
        public ArmorProjectile1(Armor mobile)
            : base(mobile, ShotType.S1, Parameter.ProjectileArmorS1ExplosionRadius, Parameter.ProjectileArmorS1BaseDamage)
        {
            //Initializing Flipbook
            FlipbookList.Add(new Flipbook(
                                 mobile.Crosshair.CannonPosition, new Vector2(18, 14),
                                 36, 28, "Graphics/Tank/Armor/Bullet1",
                                 new List <AnimationInstance>()
            {
                new AnimationInstance()
                {
                    StartingFrame = 0, EndingFrame = 4, TimePerFrame = 1 / 20f
                }
            }, DepthParameter.Projectile, angle));

            //Physics/Trajectory setups
            mass          = Parameter.ProjectileArmorS1Mass;
            windInfluence = Parameter.ProjectileArmorS1WindInfluence;
        }
Esempio n. 14
0
        public DragonProjectile(Dragon mobile, int damage, int blastRadius, float forceModifier, float angleModifier, float spawnTime)
            : base(mobile, ShotType.S1, blastRadius, damage,
                   angleModifier: angleModifier,
                   forceModifier: forceModifier)
        {
            //Initializing Flipbook
            FlipbookList.Add(new Flipbook(
                                 mobile.Crosshair.CannonPosition, Vector2.One / 2,
                                 1, 1, "Misc/Dummy",
                                 new List <AnimationInstance>()
            {
                new AnimationInstance()
            }, DepthParameter.Projectile, angle));

            SpawnTime = spawnTime;
            FlipbookList[0].HideElement();
            FlipbookList[0].Color = Color.Yellow;

            previousSESpawnPosition = FlipbookList[0].Position;
        }
Esempio n. 15
0
        public IceProjectile3(Ice mobile) : base(mobile, ShotType.SS, Parameter.ProjectileIceSSExplosionRadius, Parameter.ProjectileIceSSBaseDamage)
        {
            //Initializing Flipbook
            FlipbookList.Add(new Flipbook(
                                 mobile.Crosshair.CannonPosition, new Vector2(38.5f, 35f),
                                 77, 70, "Graphics/Tank/Ice/Bullet3",
                                 new List <AnimationInstance>()
            {
                new AnimationInstance()
                {
                    StartingFrame = 0, EndingFrame = 14, TimePerFrame = 1 / 20f
                }
            }, DepthParameter.Projectile, angle));

            //Physics/Trajectory setups
            mass          = Parameter.ProjectileIceSSMass;
            windInfluence = Parameter.ProjectileIceSSWindInfluence;

            SpawnTime = 0.7;
        }
Esempio n. 16
0
        public IceProjectile2(Ice mobile) : base(mobile, ShotType.S2, Parameter.ProjectileIceS2ExplosionRadius, Parameter.ProjectileIceS2BaseDamage)
        {
            //Initializing Flipbook
            FlipbookList.Add(new Flipbook(
                                 mobile.Crosshair.CannonPosition, new Vector2(16.5f, 17f),
                                 37, 34, "Graphics/Tank/Ice/Bullet2",
                                 new List <AnimationInstance>()
            {
                new AnimationInstance()
                {
                    StartingFrame = 0, EndingFrame = 11, TimePerFrame = 1 / 20f
                }
            }, DepthParameter.Projectile, angle));

            //Physics/Trajectory setups
            mass          = Parameter.ProjectileIceS2Mass;
            windInfluence = Parameter.ProjectileIceS2WindInfluence;

            SpawnTime = 0.2;
        }
Esempio n. 17
0
        public DragonProjectile3(Dragon mobile) : base(mobile, ShotType.SS, 0, 0)
        {
            //Initializing Flipbook
            FlipbookList.Add(new Flipbook(
                                 mobile.Crosshair.CannonPosition, new Vector2(19.5f, 19.5f),
                                 39, 39, "Graphics/Tank/Dragon/Bullet3",
                                 new List <AnimationInstance>()
            {
                new AnimationInstance()
                {
                    StartingFrame = 0, EndingFrame = 4, TimePerFrame = 1 / 20f
                }
            }, DepthParameter.Projectile, angle));

            //Physics/Trajectory setups
            mass          = Parameter.ProjectileDragonSSMass;
            windInfluence = Parameter.ProjectileDragonSSWindInfluence;

            SpawnTime = 0.3f;
        }
Esempio n. 18
0
        public RaonProjectile2(RaonLauncher mobile, float forceModifier)
            : base(mobile, ShotType.S2, 0, 0, forceModifier: forceModifier)
        {
            //Initializing Flipbook
            FlipbookList.Add(new Flipbook(
                                 mobile.Crosshair.CannonPosition, new Vector2(15f, 15f),
                                 33, 31, "Graphics/Tank/RaonLauncher/Bullet2",
                                 new List <AnimationInstance>()
            {
                new AnimationInstance()
                {
                    StartingFrame = 0, EndingFrame = 9, TimePerFrame = 1 / 20f
                }
            }, DepthParameter.Projectile, angle));

            //Physics/Trajectory setups
            mass          = Parameter.ProjectileRaonLauncherS2Mass;
            windInfluence = Parameter.ProjectileRaonLauncherS2WindInfluence;

            SpawnTime = 0.7;
        }
Esempio n. 19
0
        public TricoProjectile1(Trico mobile)
            : base(mobile, ShotType.S1, Parameter.ProjectileTricoS1ExplosionRadius, Parameter.ProjectileTricoS1BaseDamage)
        {
            //Initializing Flipbook
            FlipbookList.Add(new Flipbook(
                                 mobile.Crosshair.CannonPosition, new Vector2(16, 16),
                                 32, 32, "Graphics/Tank/Trico/Bullet1",
                                 new List <AnimationInstance>()
            {
                new AnimationInstance()
                {
                    StartingFrame = 0, EndingFrame = 7, TimePerFrame = 1 / 20f
                }
            }, DepthParameter.Projectile, angle));

            //Physics/Trajectory setups
            mass          = Parameter.ProjectileTricoS1Mass;
            windInfluence = Parameter.ProjectileTricoS1WindInfluence;

            SpawnTime = 0.7;
        }
Esempio n. 20
0
        public BigfootProjectile1(Bigfoot mobile, float angleModifier, float spawnTime)
            : base(mobile, ShotType.S1, Parameter.ProjectileBigfootS1ExplosionRadius, Parameter.ProjectileBigfootS1BaseDamage, angleModifier: angleModifier)
        {
            //Initializing Flipbook
            FlipbookList.Add(new Flipbook(
                                 mobile.Crosshair.CannonPosition, new Vector2(31.5f, 20),
                                 63, 40, "Graphics/Tank/Bigfoot/Bullet1",
                                 new List <AnimationInstance>()
            {
                new AnimationInstance()
                {
                    StartingFrame = 0, EndingFrame = 4, TimePerFrame = 1 / 20f
                }
            }, DepthParameter.Projectile, angle));

            //Physics/Trajectory setups
            mass          = Parameter.ProjectileBigfootS1Mass;
            windInfluence = Parameter.ProjectileBigfootS1WindInfluence;

            SpawnTime = spawnTime;
        }
Esempio n. 21
0
        public LightningProjectile3(Lightning mobile) : base(mobile, ShotType.SS, Parameter.ProjectileLightningSSExplosionRadius, Parameter.ProjectileLightningSSBaseDamage)
        {
            Mobile = mobile;

            //Initializing Flipbook
            FlipbookList.Add(new Flipbook(
                                 mobile.Crosshair.CannonPosition, new Vector2(44f, 27f),
                                 99, 50, "Graphics/Tank/Lightning/Bullet3",
                                 new List <AnimationInstance>()
            {
                new AnimationInstance()
                {
                    StartingFrame = 0, EndingFrame = 11, TimePerFrame = 1 / 20f
                }
            }, DepthParameter.Projectile));

            //Physics/Trajectory setups
            mass          = Parameter.ProjectileLightningSSMass;
            windInfluence = Parameter.ProjectileLightningSSWindInfluence;

            SpawnTime = 0;
        }
Esempio n. 22
0
        public RaonProjectile3(RaonLauncher mobile) : base(mobile, ShotType.SS, 0, 0)
        {
            Mobile = mobile;

            //Initializing Flipbook
            FlipbookList.Add(new Flipbook(
                                 mobile.Crosshair.CannonPosition, new Vector2(21f, 16f),
                                 44, 34, "Graphics/Tank/RaonLauncher/Bullet3",
                                 new List <AnimationInstance>()
            {
                new AnimationInstance()
                {
                    StartingFrame = 0, EndingFrame = 9, TimePerFrame = 1 / 20f
                }
            }, DepthParameter.Projectile, angle));

            //Physics/Trajectory setups
            mass          = Parameter.ProjectileIceSSMass;
            windInfluence = Parameter.ProjectileIceSSWindInfluence;

            SpawnTime = 0.7;
        }
Esempio n. 23
0
        public BigfootProjectile2(Bigfoot mobile, int forceModifier, float spawnTime)
            : base(mobile, ShotType.S2, Parameter.ProjectileBigfootS2ExplosionRadius, Parameter.ProjectileBigfootS2BaseDamage, forceModifier: forceModifier)
        {
            Mobile = mobile;

            //Initializing Flipbook
            FlipbookList.Add(new Flipbook(
                                 mobile.Crosshair.CannonPosition, new Vector2(9, 7.5f),
                                 18, 15, "Graphics/Tank/Bigfoot/Bullet2",
                                 new List <AnimationInstance>()
            {
                new AnimationInstance()
                {
                    StartingFrame = 0, EndingFrame = 9, TimePerFrame = 1 / 20f
                }
            }, DepthParameter.Projectile, angle));

            //Physics/Trajectory setups
            mass          = Parameter.ProjectileBigfootS2Mass;
            windInfluence = Parameter.ProjectileBigfootS2WindInfluence;

            SpawnTime = spawnTime;
        }
Esempio n. 24
0
        public KnightProjectile3(Knight Mobile)
            : base(Mobile, ShotType.SS, 0, 0)
        {
            //Initializing Flipbook
            FlipbookList.Add(new Flipbook(
                                 Mobile.Crosshair.CannonPosition,
                                 new Vector2(25 / 2f, 24 / 2f),
                                 25, 24,
                                 "Graphics/Tank/Knight/Shot3",
                                 new AnimationInstance()
            {
                StartingFrame = 0,
                EndingFrame   = 19,
                TimePerFrame  = 1 / 20f,
            }, DepthParameter.Projectile, angle));

            //Physics/Trajectory setups
            mass          = Parameter.ProjectileKnightSSMass;
            windInfluence = Parameter.ProjectileKnightSSWindInfluence;

            //Knightsword Animation
            Mobile.Satellite.AttackingTarget = FlipbookList[0];
        }
Esempio n. 25
0
        public KnightSatelliteProjectile(Knight Mobile, Vector2 InitialPosition, Vector2 FinalPosition, ShotType baseShotType, double FreezeTime = 0, double SpawnTime = 0)
            : base(Mobile, ShotType.Satellite, Parameter.ProjectileKnightExplosionRadius, Parameter.ProjectileKnightSwordBaseDamage,
                   projectileInitialPosition: InitialPosition)
        {
            previousSESpawnPosition = InitialPosition;
            initialAlpha            = Parameter.ProjectileKnightInitialAlpha;

            //Calculate the angle of the swords
            double angle = (float)Helper.AngleBetween(FinalPosition, InitialPosition);

            //Initializing Flipbook
            FlipbookList.Add(
                new Flipbook(
                    InitialPosition,
                    new Vector2(81, 32),
                    162, 65,
                    "Graphics/Tank/Knight/Bullet1",
                    new AnimationInstance()
            {
                StartingFrame = 0,
                EndingFrame   = 19,
                TimePerFrame  = 1 / 40f,
            },
                    DepthParameter.Projectile,
                    rotation: (float)angle));

            this.FreezeTime = FreezeTime;
            this.SpawnTime  = SpawnTime;

            this.baseShotType = baseShotType;

            SpawnTimeCounter = FreezeTimeCounter = 0;

            swordTrace = new List <SpecialEffect>();

            InitializeMovement();
        }
Esempio n. 26
0
        public ArmorProjectile3(Armor mobile)
            : base(mobile, ShotType.SS, Parameter.ProjectileArmorSSExplosionRadius, Parameter.ProjectileArmorSSBaseDamage)
        {
            Mobile = mobile;

            rocketAnimation    = ProjectileAnimationState.Closed;
            totalTravelledTime = 0;

            //Initializing Flipbook
            FlipbookList.Add(new Flipbook(
                                 mobile.Crosshair.CannonPosition, new Vector2(65, 54),
                                 131, 109, "Graphics/Tank/Armor/Bullet3",
                                 new List <AnimationInstance>()
            {
                rocketAnimationPresets[rocketAnimation]
            },
                                 DepthParameter.Projectile, angle));

            //Physics/Trajectory setups
            mass          = Parameter.ProjectileArmorSSMass;
            windInfluence = Parameter.ProjectileArmorSSWindInfluence;

            SpawnTime = 0.7;
        }