From ce5da03c3fef7450d62391748e3f50a492e8ce55 Mon Sep 17 00:00:00 2001 From: josisaku <josisaku@jyu.fi> Date: Fri, 4 Apr 2025 02:11:47 +0300 Subject: [PATCH] easter egg --- .../Financial_Freedom/Bossfight.cs | 334 ++++++++++++++++++ .../Financial_Freedom/Content/ch661.png | Bin 0 -> 38056 bytes .../Financial_Freedom/Financial_Freedom.cs | 63 ++-- .../Financial_Freedom.csproj | 9 + .../Financial_Freedom/Ohjelma.cs | 22 +- 5 files changed, 407 insertions(+), 21 deletions(-) create mode 100644 Financial_Freedom/Financial_Freedom/Bossfight.cs create mode 100644 Financial_Freedom/Financial_Freedom/Content/ch661.png diff --git a/Financial_Freedom/Financial_Freedom/Bossfight.cs b/Financial_Freedom/Financial_Freedom/Bossfight.cs new file mode 100644 index 0000000..c78f13a --- /dev/null +++ b/Financial_Freedom/Financial_Freedom/Bossfight.cs @@ -0,0 +1,334 @@ +using System; +using FarseerPhysics.Dynamics; +using FarseerPhysics.Dynamics.Joints; +using Jypeli; +using Jypeli.Assets; +using Jypeli.Controls; +using Jypeli.Effects; +using Jypeli.Widgets; + +public class Bossfight : PhysicsGame +{ + private PlatformCharacter tero; + private AssaultRifle playerWeapon; + private PlatformCharacter2 boss; + private IntMeter bossHealth; + private IntMeter playerHealth; + private Timer projectileTimer; + private Timer bossMovementTimer; + private double bossMoveSpeed = 150; + + private PhysicsObject bottomWall; + + private Weapon rifle = new AssaultRifle(20, 5); + + private bool startBoss = false; + + private GameObject bossHealthBar; + private GameObject bossHealthBackground; + private GameObject playerHealthBar; + private GameObject playerHealthBackground; + + + public override void Begin() + { + IsFullScreen = true; + Level.Size = new Vector(5000, 1500); // Larger level for sidescrolling + + bottomWall = PhysicsObject.CreateStaticObject(Level.Width, 200.0); + bottomWall.Y = Level.Bottom + 100.0; + bottomWall.Color = Color.Gray; + bottomWall.Tag = "reuna"; + Add(bottomWall); + Level.CreateBorders(1.0, true); + Level.CreateLeftBorder(1.0, true).Tag = "reuna"; + Level.CreateRightBorder(1.0, true).Tag = "reuna"; + Level.CreateTopBorder(1.0, true).Tag = "reuna"; + + Level.Background.Image = LoadImage("CasinoEntrance.png"); + Level.Background.FitToLevel(); + Gravity = new Vector(0, -800); // Stronger gravity for better platform feel + + CreateBoss(); + CreatePlayer(); + Camera.Follow(tero); // Camera follows player for sidescrolling + Camera.StayInLevel = true; + + CreatePlatforms(); + CreateHealthBars(); + SetupCollisions(); + SetupControls(); + StartBossBehavior(); + } + + private void CreateHealthBars() + { + // Boss health bar background + bossHealthBackground = new Widget(Screen.Width -100, 50); + bossHealthBackground.Color = Color.Gray; + bossHealthBackground.Position = new Vector(0, Screen.Top - 75); + Add(bossHealthBackground); + + // Boss health bar foreground + bossHealthBar = new Widget(Screen.Width -100, 50); + bossHealthBar.Color = Color.Red; + bossHealthBar.Position = bossHealthBackground.Position; + Label bossHealthLabel = new Label(600, 200) + { + Text = "Boss Health", + TextScale = new Vector(2,2), + TextColor = Color.White, + Position = new Vector(0,0) + + }; + Add(bossHealthBar); + bossHealthBar.Add(bossHealthLabel); + + // Player health bar background + playerHealthBackground = new Widget(300, 30); + playerHealthBackground.Color = Color.Gray; + playerHealthBackground.Position = new Vector(Screen.Left + 170, Screen.Top - 50); + Add(playerHealthBackground); + + // Player health bar foreground + playerHealthBar = new Widget(300, 30); + playerHealthBar.Color = Color.Green; + playerHealthBar.Position = playerHealthBackground.Position; + Add(playerHealthBar); + } + + protected override void Update(Time time) + { + base.Update(time); + if (bossHealth != null && playerHealth != null) {UpdateHealthBars();} + + // Get mouse position relative to the player + Vector mousePos = Mouse.PositionOnWorld; + Vector direction = mousePos - tero.Position; + + // Calculate angle (in radians) and convert to degrees + float angle = (float)Math.Atan2(direction.Y, direction.X); + rifle.Angle = Angle.FromRadians(angle); + + if (rifle.Ammo.Value == 0){Timer.SingleShot(5.0, () => rifle.Ammo.Value = 30);} + } + + private void UpdateHealthBars() + { + if (bossHealthBar != null && bossHealthBackground != null) + UpdateHealthBar(bossHealth, bossHealthBar, bossHealthBackground); + + if (playerHealthBar != null && playerHealthBackground != null) + UpdateHealthBar(playerHealth, playerHealthBar, playerHealthBackground); + } + + private void UpdateHealthBar(IntMeter meter, GameObject bar, GameObject background) + { + if (meter == null || bar == null || background == null) return; + + double healthPercent = (double)meter.Value / meter.MaxValue; + bar.Width = background.Width * healthPercent; + bar.Position = new Vector( + background.Left + (bar.Width / 2), + background.Position.Y + ); + } + + private void CreatePlatforms() + { + // Floating platforms + for (int i = 1; i < 6; i++) + { + PhysicsObject platform = new PhysicsObject(200, 40); + platform.Position = new Vector(Screen.Left+i*(Screen.Width/6), -50); + platform.Color = Color.Green; + platform.MakeStatic(); + Add(platform); + } + } + + public void CreatePlayer() + { + rifle = new AssaultRifle(100, 66); + rifle.Image = LoadImage("ch661.png"); + + tero = new PlatformCharacter(75, 120); + tero.Shape = Shape.Rectangle; + tero.Color = Color.Blue; + tero.Position = new Vector(0, -200); + playerHealth = new IntMeter(100, 0, 100); + + + tero.Weapon = rifle; + tero.Weapon.Ammo.Value = 25; + tero.Weapon.FireRate = 50; + tero.CollisionIgnoreGroup = 1; + playerHealth = new IntMeter(100, 0, 100); + tero.Image = LoadImage("tero.png"); + + tero.Weapon.ProjectileCollision += OnProjectileHit; + tero.Weapon.Tag = "PlayerProjectile"; + + Add(tero); + tero.Add(rifle); + } + + private void CreateBoss() + { + boss = new PlatformCharacter2(120, 240); + boss.Shape = Shape.Rectangle; + boss.Color = Color.Red; + boss.Position = new Vector(600, 300); + boss.CollisionIgnoreGroup = 2; + boss.Mass = 10.0; + bossHealth = new IntMeter(500, 0, 300); + Add(boss); + } + + private void SetupCollisions() + { + // Player projectiles hitting boss + //AddCollisionHandler(boss, tero.Weapon.Shoot(), OnProjectileHit); + + // Boss projectiles hitting player + AddCollisionHandler(tero, typeof(PhysicsObject), OnPlayerHitByProjectile); + + + } + + private void OnProjectileHit(PhysicsObject projectile, PhysicsObject target) + { + if (projectile.Tag as string == "PlayerProjectile" && target == boss) + { + bossHealth.Value -= 1; + projectile.Destroy(); + ShowBossDamageEffect(); + CheckBossDefeat(); + } + + if (projectile.Tag as string == "PlayerProjectile" && target.Tag.ToString() == "reuna") + { + projectile.Destroy(); + } + + } + + private void OnPlayerHitByProjectile(PhysicsObject projectile, PhysicsObject target) + { + if (projectile.Tag as string == "BossProjectile" && target == tero) + { + playerHealth.Value -= 20; + projectile.Destroy(); + ShowPlayerDamageEffect(); + CheckPlayerDeath(); + } + } + + private void ShowBossDamageEffect() + { + boss.Color = Color.Orange; + Timer.SingleShot(0.2, () => boss.Color = Color.Red); + } + + private void ShowPlayerDamageEffect() + { + tero.Color = Color.DarkRed; + Timer.SingleShot(0.2, () => tero.Color = Color.Blue); + } + + private void CheckBossDefeat() + { + if (bossHealth.Value <= 0) + { + MessageDisplay.Add("VICTORY!"); + Exit(); + } + } + + private void CheckPlayerDeath() + { + if (playerHealth.Value <= 0) + { + MessageDisplay.Add("GAME OVER"); + Exit(); + } + } + + private void StartBossBehavior() + { + // Projectile attack pattern + projectileTimer = new Timer(1.5); + projectileTimer.Timeout += ShootProjectiles; + projectileTimer.Start(); + + // Movement pattern + bossMovementTimer = new Timer(3.0); + bossMovementTimer.Timeout += MoveBoss; + bossMovementTimer.Start(); + + startBoss = true; + } + + private void MoveBoss() + { + + } + + private void ShootProjectiles() + { + for (int i = 0; i < 3; i++) + { + PhysicsObject projectile = new PhysicsObject(30, 30) + { + Shape = Shape.Circle, + Color = Color.Yellow, + Position = boss.Position, + Tag = "BossProjectile", + IgnoresGravity = false, + CollisionIgnoreGroup = 1 // Don't collide with other boss projectiles + }; + + // Add velocity towards player + Vector direction = (tero.Position - boss.Position).Normalize(); + projectile.Velocity = direction * 300; + + Add(projectile); + Timer.SingleShot(5.0, projectile.Destroy); + } + } + + + + private void SetupControls() + { + Keyboard.Listen(Key.A, ButtonState.Down, () => tero.X -= 12, "Move left"); + Keyboard.Listen(Key.D, ButtonState.Down, () => tero.X += 12, "Move right"); + Keyboard.Listen(Key.W, ButtonState.Down, () => tero.Jump(500.0), "Jump"); + + // Safe shooting + Mouse.Listen(MouseButton.Left, ButtonState.Down, () => + { + ShootWeapon(rifle); + }, "Shoot"); + + Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Quit"); + } + + void ShootWeapon(Weapon weapon) { + if (weapon == null) + { + Console.WriteLine("Weapon is null!"); // Log error + return; + } + PhysicsObject bullet = weapon.Shoot(); + if (bullet != null) { + bullet.Size *= 1 ; // Customize projectile size + bullet.Velocity *= 12; + bullet.MaximumLifetime = TimeSpan.FromSeconds(1); + bullet.IgnoresGravity = false; + bullet.Tag = "PlayerProjectile"; + bullet.CollisionIgnoreGroup = 1; + } + } + +} \ No newline at end of file diff --git a/Financial_Freedom/Financial_Freedom/Content/ch661.png b/Financial_Freedom/Financial_Freedom/Content/ch661.png new file mode 100644 index 0000000000000000000000000000000000000000..313715ab48805dc7c60c7fa79c493c64662ee579 GIT binary patch literal 38056 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 literal 0 HcmV?d00001 diff --git a/Financial_Freedom/Financial_Freedom/Financial_Freedom.cs b/Financial_Freedom/Financial_Freedom/Financial_Freedom.cs index e69c80b..e88c388 100644 --- a/Financial_Freedom/Financial_Freedom/Financial_Freedom.cs +++ b/Financial_Freedom/Financial_Freedom/Financial_Freedom.cs @@ -24,15 +24,15 @@ using Key = Jypeli.Key; using MouseButton = Jypeli.MouseButton; using Window = Jypeli.Window; -/// @author Miklas, Joonatan, Santeri -/// @version 0.69.420 -/// <summary> -/// Pelissä koitetaan pelastaa pelaajan poika joka on joutunut venäläisen mafian kidnappaamaksi. -/// He vaativat lunnasrahoja joita sinulla ei ole ja päätät suunnata kasinolle tienaamaan -/// Kasinolla voit voittaa 10000000% rahastasi takaisin mutta hävitä vain 100% joten sehän on kannattavaa +// @author Miklas, Joonatan, Santeri +// @version 0.69.420 +// <summary> +// Pelissä koitetaan pelastaa pelaajan poika joka on joutunut venäläisen mafian kidnappaamaksi. +// He vaativat lunnasrahoja joita sinulla ei ole ja päätät suunnata kasinolle tienaamaan +// Kasinolla voit voittaa 10000000% rahastasi takaisin mutta hävitä vain 100% joten sehän on kannattavaa -/// Pelaa erilaisia minipelejä kasvattaen rahamäärääsi kohti miljardia 1 000 000 000€ -/// Kontrollit on peleissä näytetty merkinnöillä (*nappi*), peli vaatii suurimmilta osin näppäimistöä mutta joskus joudut käyttämään myös hiirtäsi. +// Pelaa erilaisia minipelejä kasvattaen rahamäärääsi kohti miljardia 1 000 000 000€ +// Kontrollit on peleissä näytetty merkinnöillä (*nappi*), peli vaatii suurimmilta osin näppäimistöä mutta joskus joudut käyttämään myös hiirtäsi. /* Credits: @@ -45,7 +45,6 @@ using Window = Jypeli.Window; //minimi/maksimipanokset, slots ei minimiä mutta joku maksimi koska muuten op, plinko pieni minimi ei maksimia (ehkä) //bj suurempi minimi ei max, cf sama?? -//ruletti namespace Financial_Freedom{ @@ -132,6 +131,9 @@ public class RBetAmounts public class Financial_Freedom : PhysicsGame //alustellaan muuttujat { + // Track boss fight condition + public bool PlayerReachedBossCondition { get; private set; } + private double yTs = 1; // Yleinen Takaisinsaanti private double tsplinko = (1); //suurinpiirtein takaisinsaantikerroin plinkoalustoissa 0.85 kontrollikerroin DoubleMeter pistelaskuri; //heitäppä villi veikkaus mikä tämä voisi olla @@ -236,6 +238,17 @@ public class Financial_Freedom : PhysicsGame private Image[] coinFlipImages = LoadImages( "coin1", "coin2", "coin3", "coin4", "coin5", "coin6", "coin7", "coin8" ); + private void CheckBossCondition() + { + if (pistelaskuri != null) + { + if (pistelaskuri.Value >= 100000) + { + PlayerReachedBossCondition = true; + } + } + } + public override void Begin() // pelin alku { IsFullScreen = true; @@ -380,6 +393,8 @@ public class Financial_Freedom : PhysicsGame { base.Update(time); + CheckBossCondition(); + UpdateDoorPopup(); TarkistaRahaTavoite(); TarkistaScore(); @@ -445,7 +460,9 @@ public class Financial_Freedom : PhysicsGame private void Casinoentry() { Level.Background.Image = LoadImage("Casinoentrance.png"); + Level.Size = Screen.Size; Level.Background.FitToLevel(); + Level.CreateBorders(); ovet = new List<GameObject>(); @@ -494,7 +511,8 @@ public class Financial_Freedom : PhysicsGame /// <summary> /// Pelin "aloitusruutuu" jossa valitaan mitä peliä halutaan pelata. /// </summary> - void PelinValintaa() + + /*void PelinValinta() { Gravity = new Vector(0, 0); @@ -504,11 +522,11 @@ public class Financial_Freedom : PhysicsGame var pakka = LuoPakka(); SekoitaPakka(pakka); - /*MiniPeliLogo(this,250, 325, - 400, Level.Top - 300, "Plinko", 1); + MiniPeliLogo(this,250, 325, - 400, Level.Top - 300, "Plinko", 1); MiniPeliLogo(this,250, 325, 0, Level.Top - 300, "Blackjack", 2); MiniPeliLogo(this,250, 325, 400, Level.Top - 300, "Ruletti", 3); MiniPeliLogo(this,250,325, -200, -200, "Slots", 4); - MiniPeliLogo(this,250,325, 200, -200, "Coinflip", 5);*/ + MiniPeliLogo(this,250,325, 200, -200, "Coinflip", 5); Keyboard.Listen(Key.Space, ButtonState.Down, AddRaha, "antaa rahaa"); Keyboard.Listen(Key.D2, ButtonState.Pressed, async () => await BlackJack(), "Menee peliin BlackJack"); Keyboard.Listen(Key.D1, ButtonState.Pressed, async () => await Plinko(), "Menee peliin Plinko"); @@ -516,9 +534,9 @@ public class Financial_Freedom : PhysicsGame Keyboard.Listen(Key.D4, ButtonState.Pressed, async () => await Slots(), "Menee peliin Slots"); Keyboard.Listen(Key.D5, ButtonState.Pressed, async () => await Coinflip(), "Menee peliin Coinflip"); Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Lopeta peli"); - } + }*/ - public async Task PelinValinta() + public void PelinValinta() { ClearControls(); ClearGameObjects(); @@ -528,6 +546,7 @@ public class Financial_Freedom : PhysicsGame Gravity = new Vector(0, 0); Level.Background.Image = taustakuvaPV; Level.Background.FitToLevel(); + Level.CreateBorders(); LuoPistelaskuri(); var pakka = LuoPakka(); @@ -583,10 +602,9 @@ public class Financial_Freedom : PhysicsGame Keyboard.Listen(Key.Space, ButtonState.Pressed, SelectDoor, "Select a door"); Keyboard.Listen(Key.Enter, ButtonState.Pressed, SelectDoor, "Select a door"); - - // controllit Keyboard.Listen(Key.A, ButtonState.Down, () => tero.X -= 12, "Move left"); Keyboard.Listen(Key.D, ButtonState.Down, () => tero.X += 12, "Move right"); + Keyboard.Listen(Key.R, ButtonState.Down, AddRaha, "antaa rahaa"); } void CreatePelaaja() @@ -612,7 +630,7 @@ public class Financial_Freedom : PhysicsGame case 3: return "Ruletti"; case 4: return "Slots"; case 5: return "Coinflip"; - case 6: return "Ulos"; + case 6: {if(pistelaskuri.Value >= 100000){return "Kelpaisiko mafiapomoille 100k$?";} return "Ulos"; } case 7: return "Mene kasinoon sisälle"; default: return "Unknown"; } @@ -3085,9 +3103,14 @@ public class Financial_Freedom : PhysicsGame void CasinoExit() { peliKesken = 0; - ClearControls(); - ClearGameObjects(); - Defeat(); + //if (pistelaskuri.Value > 10000) { ClearAll(); var mafiapomo = new Bossfight(); mafiapomo.Boss();} + if (pistelaskuri.Value > 100000){Exit();} + else + { + ClearControls(); + ClearGameObjects(); + Defeat(); + } } async Task Voitto() diff --git a/Financial_Freedom/Financial_Freedom/Financial_Freedom.csproj b/Financial_Freedom/Financial_Freedom/Financial_Freedom.csproj index b63c1de..b3362f4 100644 --- a/Financial_Freedom/Financial_Freedom/Financial_Freedom.csproj +++ b/Financial_Freedom/Financial_Freedom/Financial_Freedom.csproj @@ -392,10 +392,19 @@ <None Update="Content\CasinoEntrance.png"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </None> + <None Update="Content\ch661.png"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> </ItemGroup> <ItemGroup> <None Remove="Content\toplistsave.txt" /> </ItemGroup> + <ItemGroup> + <Compile Update="Bossfight.cs"> + <CopyToOutputDirectory>Never</CopyToOutputDirectory> + </Compile> + </ItemGroup> + </Project> diff --git a/Financial_Freedom/Financial_Freedom/Ohjelma.cs b/Financial_Freedom/Financial_Freedom/Ohjelma.cs index c3c291d..5afaf05 100644 --- a/Financial_Freedom/Financial_Freedom/Ohjelma.cs +++ b/Financial_Freedom/Financial_Freedom/Ohjelma.cs @@ -19,8 +19,28 @@ namespace Financial_Freedom [STAThread] static void Main() { - using var game = new Financial_Freedom(); + bool shouldLaunchBossFight = false; + + using (var ff = new Financial_Freedom()) + { + ff.Run(); + // Check condition AFTER main game completes + shouldLaunchBossFight = ff.PlayerReachedBossCondition; + } + + // Then conditionally launch boss fight + if (shouldLaunchBossFight) + { + using (var bossGame = new Bossfight()) + { + bossGame.Run(); + } + } + + /*using var game = new Financial_Freedom(); game.Run(); + using var game2 = new Bossfight(); + game2.Run();*/ } } } \ No newline at end of file -- GitLab