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); } }
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(); }
protected override EffectSpriteInstance CreateSprite(Vector2 position) { var sprite = base.CreateSprite(position); if (CDGMath.RandomPlusMinus() < 0) { sprite.Flip = SpriteEffects.FlipHorizontally; } return(sprite); }
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); } }
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); } }
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); } } }
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(); }); }
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(); }); }
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(); }
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(); }); } }