Esempio n. 1
0
 public void ThrowCardinalProjectilesNeo(int startProjIndex, bool randomizeFlipper, int flipper)
 {
     if (startProjIndex < 13)
     {
         var projectileData = new ProjectileData(this)
         {
             SpriteName          = "EyeballProjectile_Sprite",
             SourceAnchor        = Vector2.Zero,
             Target              = null,
             Speed               = new Vector2(ProjectileSpeed, ProjectileSpeed),
             IsWeighted          = false,
             RotationSpeed       = 0f,
             Damage              = Damage,
             AngleOffset         = 0f,
             Scale               = ProjectileScale,
             CollidesWithTerrain = false,
             Angle               = new Vector2(0f, 0f)
         };
         if (randomizeFlipper)
         {
             flipper = CDGMath.RandomPlusMinus();
         }
         projectileData.AngleOffset = -10 + startProjIndex * 17 * flipper;
         m_levelScreen.ProjectileManager.FireProjectile(projectileData);
         projectileData.AngleOffset = 80 + startProjIndex * 17 * flipper;
         m_levelScreen.ProjectileManager.FireProjectile(projectileData);
         projectileData.AngleOffset = 170 + startProjIndex * 17 * flipper;
         m_levelScreen.ProjectileManager.FireProjectile(projectileData);
         projectileData.AngleOffset = 260 + startProjIndex * 17 * flipper;
         m_levelScreen.ProjectileManager.FireProjectile(projectileData);
         projectileData.Dispose();
         startProjIndex++;
         Tween.RunFunction(0.12f, this, "ThrowCardinalProjectilesNeo", startProjIndex, false, flipper);
     }
 }
Esempio n. 2
0
        private void ThrowCardinalProjectiles(LogicSet ls)
        {
            var projectileData = new ProjectileData(this)
            {
                SpriteName          = "EyeballProjectile_Sprite",
                SourceAnchor        = Vector2.Zero,
                Target              = null,
                Speed               = new Vector2(ProjectileSpeed, ProjectileSpeed),
                IsWeighted          = false,
                RotationSpeed       = 0f,
                Damage              = Damage,
                AngleOffset         = 0f,
                Scale               = ProjectileScale,
                CollidesWithTerrain = false,
                Angle               = new Vector2(0f, 0f)
            };
            var num = CDGMath.RandomPlusMinus();

            for (var i = 0; i <= 170; i += 10)
            {
                projectileData.AngleOffset = i * num;
                ls.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
                projectileData.AngleOffset = 90 + i * num;
                ls.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
                projectileData.AngleOffset = 180 + i * num;
                ls.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
                projectileData.AngleOffset = 270 + i * num;
                ls.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
                ls.AddAction(new DelayLogicAction(0.175f));
            }
            projectileData.Dispose();
        }
Esempio n. 3
0
        protected override EffectSpriteInstance CreateSprite(Vector2 position)
        {
            var sprite = base.CreateSprite(position);

            if (CDGMath.RandomPlusMinus() < 0)
            {
                sprite.Flip = SpriteEffects.FlipHorizontally;
            }

            return(sprite);
        }
Esempio n. 4
0
 public void UpdateShake()
 {
     if (m_horizontalShake)
     {
         m_gateSprite.X = CDGMath.RandomPlusMinus() * (CDGMath.RandomFloat(0f, 1f) * m_screenShakeMagnitude);
     }
     if (m_verticalShake)
     {
         m_gateSprite.Y = CDGMath.RandomPlusMinus() * (CDGMath.RandomFloat(0f, 1f) * m_screenShakeMagnitude);
     }
 }
Esempio n. 5
0
 public void UpdateShake()
 {
     if (m_horizontalShake)
     {
         Player.AttachedLevel.Camera.X = m_shakeStartingPos.X +
                                         CDGMath.RandomPlusMinus() *
                                         (CDGMath.RandomFloat(0f, 1f) * m_screenShakeMagnitude);
     }
     if (m_verticalShake)
     {
         Player.AttachedLevel.Camera.Y = m_shakeStartingPos.Y +
                                         CDGMath.RandomPlusMinus() *
                                         (CDGMath.RandomFloat(0f, 1f) * m_screenShakeMagnitude);
     }
 }
Esempio n. 6
0
 public override void Draw(Camera2D camera)
 {
     m_mountain1.X = camera.TopLeftCorner.X * 0.5f;
     m_mountain2.X = m_mountain1.X + 2640f;
     base.Draw(camera);
     if (m_isRaining)
     {
         camera.Draw(Game.GenericTexture, new Rectangle(0, 0, 2640, 720), Color.Black * 0.3f);
     }
     if (m_screenShakeCounter > 0f)
     {
         camera.X             += CDGMath.RandomPlusMinus();
         camera.Y             += CDGMath.RandomPlusMinus();
         m_screenShakeCounter -= (float)camera.GameTime.ElapsedGameTime.TotalSeconds;
     }
     if (SmithyAvailable)
     {
         m_blacksmithBoard.Draw(camera);
         m_blacksmith.Draw(camera);
         m_blacksmithIcon.Draw(camera);
     }
     if (EnchantressAvailable)
     {
         m_tent.Draw(camera);
         m_enchantress.Draw(camera);
         m_enchantressIcon.Draw(camera);
     }
     if (ArchitectAvailable)
     {
         m_screw.Draw(camera);
         m_architect.Draw(camera);
         m_architectIcon.Draw(camera);
     }
     if (TollCollectorAvailable)
     {
         m_tollCollector.Draw(camera);
         m_tollCollectorIcon.Draw(camera);
     }
     m_blacksmithNewIcon.Draw(camera);
     m_enchantressNewIcon.Draw(camera);
     if (m_isRaining)
     {
         foreach (var current in m_rainFG)
         {
             current.Draw(camera);
         }
     }
 }
Esempio n. 7
0
        public static void Display(Vector2 position)
        {
            lock (_defaultCommands)
                Instance.Run(position, x =>
                {
                    var fadeDelay = CDGMath.RandomFloat(0.4f, 0.7f);

                    var cmd           = _defaultCommands[1];
                    cmd.Duration      = 0.2f + fadeDelay;
                    cmd.Properties[1] = CDGMath.RandomInt(5, 20).ToString();

                    cmd = _defaultCommands[3];
                    cmd.Properties[1] = (CDGMath.RandomInt(10, 45) * CDGMath.RandomPlusMinus()).ToString();

                    cmd = _defaultCommands[4];
                    cmd.Properties[1] = fadeDelay.ToString();
                });
        }
Esempio n. 8
0
        public static void Display(Vector2 position)
        {
            lock (_defaultCommands)
                Instance.Run(position, x =>
                {
                    var delay = CDGMath.RandomFloat(0.4f, 0.7f);

                    var cmd           = _defaultCommands[2];
                    cmd.Properties[1] = (CDGMath.RandomInt(90, 270) * CDGMath.RandomPlusMinus()).ToString();

                    cmd               = _defaultCommands[3];
                    cmd.Duration      = delay + 0.2f;
                    cmd.Properties[1] = CDGMath.RandomInt(-20, 20).ToString();
                    cmd.Properties[3] = CDGMath.RandomInt(-20, 20).ToString();

                    cmd = _defaultCommands[4];
                    cmd.Properties[1] = delay.ToString();
                });
        }
Esempio n. 9
0
        public override void OnEnter()
        {
            if (Game.PlayerStats.SpecialItem == 9 && Game.PlayerStats.ChallengeEyeballBeaten)
            {
                Game.PlayerStats.SpecialItem = 0;
            }
            if (Game.PlayerStats.SpecialItem == 10 && Game.PlayerStats.ChallengeSkullBeaten)
            {
                Game.PlayerStats.SpecialItem = 0;
            }
            if (Game.PlayerStats.SpecialItem == 11 && Game.PlayerStats.ChallengeFireballBeaten)
            {
                Game.PlayerStats.SpecialItem = 0;
            }
            if (Game.PlayerStats.SpecialItem == 12 && Game.PlayerStats.ChallengeBlobBeaten)
            {
                Game.PlayerStats.SpecialItem = 0;
            }
            if (Game.PlayerStats.SpecialItem == 13 && Game.PlayerStats.ChallengeLastBossBeaten)
            {
                Game.PlayerStats.SpecialItem = 0;
            }
            Player.AttachedLevel.UpdatePlayerHUDSpecialItem();
            m_isSnowing = (DateTime.Now.Month == 12 || DateTime.Now.Month == 1);
            if (m_isSnowing)
            {
                foreach (var current in m_rainFG)
                {
                    current.ChangeToSnowflake();
                }
            }
            if (!(Game.ScreenManager.Game as Game).SaveManager.FileExists(SaveType.Map) &&
                Game.PlayerStats.HasArchitectFee)
            {
                Game.PlayerStats.HasArchitectFee = false;
            }
            Game.PlayerStats.TutorialComplete = true;
            Game.PlayerStats.IsDead           = false;
            m_lightningTimer       = 5f;
            Player.CurrentHealth   = Player.MaxHealth;
            Player.CurrentMana     = Player.MaxMana;
            Player.ForceInvincible = false;
            (Player.AttachedLevel.ScreenManager.Game as Game).SaveManager.SaveFiles(SaveType.PlayerData);
            if (TollCollectorAvailable && !Player.AttachedLevel.PhysicsManager.ObjectList.Contains(m_tollCollector))
            {
                Player.AttachedLevel.PhysicsManager.AddObject(m_tollCollector);
            }
            if (m_blacksmithAnvilSound == null)
            {
                m_blacksmithAnvilSound = new FrameSoundObj(m_blacksmith.GetChildAt(5) as IAnimateableObj, Player, 7,
                                                           "Anvil1", "Anvil2", "Anvil3");
            }
            if (Game.PlayerStats.Traits.X == 35f || Game.PlayerStats.Traits.Y == 35f)
            {
                Game.ShadowEffect.Parameters["ShadowIntensity"].SetValue(0.7f);
            }
            else
            {
                Game.ShadowEffect.Parameters["ShadowIntensity"].SetValue(0);
            }
            m_playerWalkedOut = false;
            Player.UpdateCollisionBoxes();
            Player.Position     = new Vector2(0f, 660f - (Player.Bounds.Bottom - Player.Y));
            Player.State        = 1;
            Player.IsWeighted   = false;
            Player.IsCollidable = false;
            var logicSet = new LogicSet(Player);

            logicSet.AddAction(new RunFunctionLogicAction(Player, "LockControls"));
            logicSet.AddAction(new MoveDirectionLogicAction(new Vector2(1f, 0f)));
            logicSet.AddAction(new ChangeSpriteLogicAction("PlayerWalking_Character"));
            logicSet.AddAction(new PlayAnimationLogicAction());
            logicSet.AddAction(new DelayLogicAction(0.5f));
            logicSet.AddAction(new ChangePropertyLogicAction(Player, "CurrentSpeed", 0));
            logicSet.AddAction(new ChangePropertyLogicAction(Player, "IsWeighted", true));
            logicSet.AddAction(new ChangePropertyLogicAction(Player, "IsCollidable", true));
            Player.RunExternalLogicSet(logicSet);
            Tween.By(this, 1f, Linear.EaseNone);
            Tween.AddEndHandlerToLastTween(Player, "UnlockControls");
            SoundManager.StopMusic(1f);
            m_isRaining = (CDGMath.RandomPlusMinus() > 0);
            m_isRaining = true;
            if (m_isRaining)
            {
                if (m_rainSFX != null)
                {
                    m_rainSFX.Dispose();
                }
                if (!m_isSnowing)
                {
                    m_rainSFX = SoundManager.PlaySound("Rain1");
                }
                else
                {
                    m_rainSFX = SoundManager.PlaySound("snowloop_filtered");
                }
            }
            m_tent.TextureColor            = new Color(200, 200, 200);
            m_blacksmithBoard.TextureColor = new Color(200, 200, 200);
            m_screw.TextureColor           = new Color(200, 200, 200);
            if (Game.PlayerStats.LockCastle)
            {
                m_screw.GoToFrame(m_screw.TotalFrames);
                m_architectBlock.Position = new Vector2(1492f, 579f);
            }
            else
            {
                m_screw.GoToFrame(1);
                m_architectBlock.Position = new Vector2(1492f, 439f);
            }
            Player.UpdateEquipmentColours();
            base.OnEnter();
        }
Esempio n. 10
0
        public static void Display(Vector2 position, int xRange = 40, int yRange = 40, float scale = 1f, bool?flipDrift = null, bool furtherDrift = false, bool longerDuration = false, bool randomDelay = false)
        {
            lock (_defaultCommands)
            {
                var pos = position;
                if (xRange != 0)
                {
                    pos.X += CDGMath.RandomInt(-xRange, xRange);
                }
                if (yRange != 0)
                {
                    pos.Y += CDGMath.RandomInt(-yRange, yRange);
                }

                Instance.Run(pos, x =>
                {
                    x.Sprite.Scale = new Vector2(scale);

                    int xDrift, yDrift;

                    if (furtherDrift)
                    {
                        xDrift = CDGMath.RandomInt(50, 100);
                        yDrift = CDGMath.RandomInt(-100, 100);
                    }
                    else
                    {
                        xDrift = CDGMath.RandomInt(-50, 50);
                        yDrift = CDGMath.RandomInt(-50, 50);
                    }

                    if (flipDrift != null)
                    {
                        if (CDGMath.RandomPlusMinus() < 0)
                        {
                            x.Sprite.Flip = SpriteEffects.FlipHorizontally;
                        }

                        if (CDGMath.RandomPlusMinus() < 0)
                        {
                            x.Sprite.Flip = SpriteEffects.FlipVertically;
                        }

                        if (flipDrift.Value)
                        {
                            xDrift = -xDrift;
                        }
                    }

                    TweenCommand cmd0 = x.TweenCommands[0], cmd1 = x.TweenCommands[1], cmd2 = x.TweenCommands[2];

                    cmd1.Properties[3] = xDrift.ToString();
                    cmd1.Properties[5] = yDrift.ToString();

                    if (longerDuration)
                    {
                        cmd0.Duration = 0.4f;
                        cmd1.Duration = 1.5f;
                        cmd2.Duration = 1f;
                    }
                    else
                    {
                        cmd0.Duration = 0.2f;
                        cmd1.Duration = 1f;
                        cmd2.Duration = 0.5f;
                    }

                    float delay = randomDelay ? CDGMath.RandomFloat(0f, 0.2f) : 0f;

                    cmd0.Properties[1] = delay.ToString();
                    cmd1.Properties[1] = delay.ToString();
                    cmd2.Properties[1] = (delay + 0.5f).ToString();

                    cmd1.Properties[7] = CDGMath.RandomInt(-45, 45).ToString();
                });
            }
        }