From cf64fb485191d4ff9057c13bbb669f01d22d78de Mon Sep 17 00:00:00 2001 From: wm-c Date: Mon, 26 Apr 2021 14:02:02 -0400 Subject: [PATCH 01/14] added pufferfish mob --- assets/worlds/mainworld.json | 9 +++++++++ src/entities/enemy/mod.rs | 3 ++- src/entities/enemy/pufferfish.rs | 33 ++++++++++++++++++++++++++++++++ src/world.rs | 10 ++-------- 4 files changed, 46 insertions(+), 9 deletions(-) create mode 100644 src/entities/enemy/pufferfish.rs diff --git a/assets/worlds/mainworld.json b/assets/worlds/mainworld.json index 9c46d40..bceb923 100644 --- a/assets/worlds/mainworld.json +++ b/assets/worlds/mainworld.json @@ -40,5 +40,14 @@ "rotation": 0 } + ], + "pufferfish": [ + { + "position" : { + "x": 400, + "y": 150 + } + } + ] } \ No newline at end of file diff --git a/src/entities/enemy/mod.rs b/src/entities/enemy/mod.rs index 18acd78..91246eb 100644 --- a/src/entities/enemy/mod.rs +++ b/src/entities/enemy/mod.rs @@ -1,4 +1,5 @@ pub mod base; pub mod jellyfish; pub mod octopus; -pub mod whirlpool; \ No newline at end of file +pub mod whirlpool; +pub mod pufferfish; \ No newline at end of file diff --git a/src/entities/enemy/pufferfish.rs b/src/entities/enemy/pufferfish.rs new file mode 100644 index 0000000..57080b3 --- /dev/null +++ b/src/entities/enemy/pufferfish.rs @@ -0,0 +1,33 @@ +use raylib::prelude::*; + +use serde::{Deserialize, Serialize}; + +use super::base::EnemyBase; + + +#[derive(Debug, Serialize, Deserialize, Default, Clone)] +pub struct Pufferfish{ + pub position: Vector2, + +} + + +impl EnemyBase for Pufferfish{ + fn render( + &mut self, + context_2d: &mut RaylibMode2D, + player: &mut crate::player::Player, + resources: &mut crate::resources::GlobalResources, + dt: f64, + ) { + context_2d.draw_circle(self.position.x as i32, self.position.y as i32, 12.0, Color::RED); + } + + fn handle_logic(&mut self, player: &mut crate::player::Player, dt: f64) { + + } + + fn handle_getting_attacked(&mut self, stun_duration: f64, current_time: f64) { + + } +} \ No newline at end of file diff --git a/src/world.rs b/src/world.rs index e1e1e00..15f592b 100644 --- a/src/world.rs +++ b/src/world.rs @@ -4,14 +4,7 @@ use failure::Error; use raylib::math::{Rectangle, Vector2}; use serde::{Deserialize, Serialize}; -use crate::{ - entities::{ - enemy::{jellyfish::JellyFish, octopus::Octopus, whirlpool::Whirlpool,}, - fish::FishEntity, - - }, - player::Player, -}; +use crate::{entities::{enemy::{jellyfish::JellyFish, octopus::Octopus, pufferfish::Pufferfish, whirlpool::Whirlpool}, fish::FishEntity}, player::Player}; #[derive(Debug, Serialize, Deserialize, Clone)] pub struct World { @@ -31,6 +24,7 @@ pub struct World { pub jellyfish: Vec, pub octopus: Vec, pub whirlpool: Vec, + pub pufferfish: Vec } From e8a00b9907b13c0395dcd0f4372e2e1123dbabce Mon Sep 17 00:00:00 2001 From: wm-c Date: Mon, 26 Apr 2021 14:03:36 -0400 Subject: [PATCH 02/14] pufferfish handling stub --- src/logic/ingame/mod.rs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/logic/ingame/mod.rs b/src/logic/ingame/mod.rs index 85bebba..7a9b9b0 100644 --- a/src/logic/ingame/mod.rs +++ b/src/logic/ingame/mod.rs @@ -253,6 +253,17 @@ impl Screen for InGameScreen { } + // Iterates over pufferfish + for pufferfish in game_core.world.pufferfish.iter_mut(){ + + pufferfish.handle_logic(&mut game_core.player, dt); + pufferfish.render(&mut context_2d, &mut game_core.player, &mut game_core.resources, dt); + + + + } + + // Removes whirlpools set for removal game_core.world.whirlpool.retain(|x| !x.should_remove()); From e9583a7266df1985555334593ca62897e555afda Mon Sep 17 00:00:00 2001 From: Evan Pratten Date: Mon, 26 Apr 2021 14:06:13 -0400 Subject: [PATCH 03/14] tweak the transponder win distance --- src/logic/ingame/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/logic/ingame/mod.rs b/src/logic/ingame/mod.rs index 85bebba..d1aa504 100644 --- a/src/logic/ingame/mod.rs +++ b/src/logic/ingame/mod.rs @@ -323,7 +323,7 @@ impl Screen for InGameScreen { .world .end_position .distance_to(game_core.player.position) - <= 70.0 + <= 40.0 { return Some(GameState::WinGame); } From eed3f3d75252d766025b578928d343d2f21e52f7 Mon Sep 17 00:00:00 2001 From: Evan Pratten Date: Mon, 26 Apr 2021 14:42:23 -0400 Subject: [PATCH 04/14] renaming and readme --- README.md | 6 ++++-- src/logic/mainmenu.rs | 4 ++-- src/main.rs | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 6e8e4c7..fc9ba6d 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -# \[Game Name\] +# Deep Breath [![Build](https://github.com/Ewpratten/ludum-dare-48/actions/workflows/build.yml/badge.svg)](https://github.com/Ewpratten/ludum-dare-48/actions/workflows/build.yml) @@ -9,7 +9,9 @@ [![Rust 1.51](https://img.shields.io/badge/Rust-1.51-orange)](https://www.rust-lang.org/) [![Made with Raylib](https://img.shields.io/badge/Made%20With-raylib-blue)](https://www.raylib.com/) -*\[Game Name\]* is a ... +**Deep Breath** is an exploration game where you explore an underwater cave in hopes of finding your lost transponder. Items and upgrades can be acquired along the way to assist your search. + +This game was written in [Rust](https://www.rust-lang.org/), on top of **[@raysan5](https://github.com/raysan5/)**'s [`raylib`](https://github.com/raysan5/raylib) graphics library. For most of our team, this has been our first big Rust project. ## Development Resources diff --git a/src/logic/mainmenu.rs b/src/logic/mainmenu.rs index 421105c..475e9bc 100644 --- a/src/logic/mainmenu.rs +++ b/src/logic/mainmenu.rs @@ -34,8 +34,8 @@ impl Screen for MainMenuScreen { // Render title draw_handle.draw_text( - "ONE BREATH", - (win_height / 2) - 80, + "DEEP BREATH", + (win_height / 2) - 100, win_width / 8, 80, Color::BLACK, diff --git a/src/main.rs b/src/main.rs index cbf7e65..27cabe3 100644 --- a/src/main.rs +++ b/src/main.rs @@ -23,7 +23,7 @@ const DEFAULT_WINDOW_DIMENSIONS: Vector2 = Vector2 { x: 1080.0, y: 720.0, }; -const WINDOW_TITLE: &str = r"One Breath"; +const WINDOW_TITLE: &str = r"Deep Breath"; const MAX_FPS: u32 = 60; fn main() { From 4c113824c7a28c5807a7037b77322eda0c44785c Mon Sep 17 00:00:00 2001 From: Evan Pratten Date: Mon, 26 Apr 2021 14:43:39 -0400 Subject: [PATCH 05/14] raylib-rs link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index fc9ba6d..bafa62a 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ **Deep Breath** is an exploration game where you explore an underwater cave in hopes of finding your lost transponder. Items and upgrades can be acquired along the way to assist your search. -This game was written in [Rust](https://www.rust-lang.org/), on top of **[@raysan5](https://github.com/raysan5/)**'s [`raylib`](https://github.com/raysan5/raylib) graphics library. For most of our team, this has been our first big Rust project. +This game was written in [Rust](https://www.rust-lang.org/), on top of [Rust bindings](https://github.com/deltaphc/raylib-rs) to the [`raylib`](https://github.com/raysan5/raylib) graphics library. For most of our team, this has been our first big Rust project. ## Development Resources From 22fd05f13bf69a67a2ce76af3d5befccb2fdfe55 Mon Sep 17 00:00:00 2001 From: Evan Pratten Date: Mon, 26 Apr 2021 14:45:12 -0400 Subject: [PATCH 06/14] more links --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index bafa62a..539b75b 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,8 @@ This game was written in [Rust](https://www.rust-lang.org/), on top of [Rust bindings](https://github.com/deltaphc/raylib-rs) to the [`raylib`](https://github.com/raysan5/raylib) graphics library. For most of our team, this has been our first big Rust project. +This has been our second game produced for Ludum Dare. Check out the first: [here](https://ldjam.com/events/ludum-dare/46/micromanaged-mike). + ## Development Resources Documentation: From 003f27a06eaf03ddecc870113a60b432d9aa2b86 Mon Sep 17 00:00:00 2001 From: Evan Pratten Date: Mon, 26 Apr 2021 14:45:37 -0400 Subject: [PATCH 07/14] less colon --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 539b75b..a907e4f 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ This game was written in [Rust](https://www.rust-lang.org/), on top of [Rust bindings](https://github.com/deltaphc/raylib-rs) to the [`raylib`](https://github.com/raysan5/raylib) graphics library. For most of our team, this has been our first big Rust project. -This has been our second game produced for Ludum Dare. Check out the first: [here](https://ldjam.com/events/ludum-dare/46/micromanaged-mike). +This has been our second game produced for Ludum Dare. Check out the first [here](https://ldjam.com/events/ludum-dare/46/micromanaged-mike). ## Development Resources From f81920162db04403a94163b0628727e70c478497 Mon Sep 17 00:00:00 2001 From: Evan Pratten Date: Mon, 26 Apr 2021 14:46:15 -0400 Subject: [PATCH 08/14] the --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a907e4f..85786ba 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ **Deep Breath** is an exploration game where you explore an underwater cave in hopes of finding your lost transponder. Items and upgrades can be acquired along the way to assist your search. -This game was written in [Rust](https://www.rust-lang.org/), on top of [Rust bindings](https://github.com/deltaphc/raylib-rs) to the [`raylib`](https://github.com/raysan5/raylib) graphics library. For most of our team, this has been our first big Rust project. +This game was written in [Rust](https://www.rust-lang.org/), on top of [Rust bindings](https://github.com/deltaphc/raylib-rs) to the [`raylib`](https://github.com/raysan5/raylib) graphics library. For most of the team, this has been our first big Rust project. This has been our second game produced for Ludum Dare. Check out the first [here](https://ldjam.com/events/ludum-dare/46/micromanaged-mike). From 055ac10ca08e0354c35bae69e00672d39d6e5ab0 Mon Sep 17 00:00:00 2001 From: Evan Pratten Date: Mon, 26 Apr 2021 14:51:23 -0400 Subject: [PATCH 09/14] round readme --- assets/img/logos/readme.png | Bin 27777 -> 36306 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/assets/img/logos/readme.png b/assets/img/logos/readme.png index c86b506642269de099557f81e0926705ee55be69..d6fda2fd473b5419e03cd15160eaed5545946568 100644 GIT binary patch literal 36306 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 Q$*&>xP4((^f4Ter0pH!_IsgCw delta 24730 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ℑ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 Date: Mon, 26 Apr 2021 14:57:21 -0400 Subject: [PATCH 10/14] 5by4 --- assets/img/logos/readme-54.png | Bin 0 -> 32842 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 assets/img/logos/readme-54.png diff --git a/assets/img/logos/readme-54.png b/assets/img/logos/readme-54.png new file mode 100644 index 0000000000000000000000000000000000000000..97f845b49e2f6c31aba1a601018c1ea11dad834b GIT binary patch literal 32842 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 Date: Mon, 26 Apr 2021 16:23:33 -0400 Subject: [PATCH 11/14] Expanding pufferfish --- assets/worlds/mainworld.json | 8 ++++++- src/entities/enemy/pufferfish.rs | 37 ++++++++++++++++++++++++++++-- src/logic/ingame/playerlogic.rs | 39 ++++++++++++++++++++++++++++++++ 3 files changed, 81 insertions(+), 3 deletions(-) diff --git a/assets/worlds/mainworld.json b/assets/worlds/mainworld.json index bceb923..7b8a9bb 100644 --- a/assets/worlds/mainworld.json +++ b/assets/worlds/mainworld.json @@ -46,7 +46,13 @@ "position" : { "x": 400, "y": 150 - } + }, + "is_knocking_back": false, + "time_knocking_back": 0.0, + "inflate_timer": 0.0, + "size": 6.0, + "is_stunned": false + } ] diff --git a/src/entities/enemy/pufferfish.rs b/src/entities/enemy/pufferfish.rs index 57080b3..9031c1c 100644 --- a/src/entities/enemy/pufferfish.rs +++ b/src/entities/enemy/pufferfish.rs @@ -8,7 +8,12 @@ use super::base::EnemyBase; #[derive(Debug, Serialize, Deserialize, Default, Clone)] pub struct Pufferfish{ pub position: Vector2, + pub is_knocking_back: bool, + pub time_knocking_back: f64, + pub inflate_timer: f64, + pub size: f32, + pub is_stunned: bool, } @@ -20,11 +25,39 @@ impl EnemyBase for Pufferfish{ resources: &mut crate::resources::GlobalResources, dt: f64, ) { - context_2d.draw_circle(self.position.x as i32, self.position.y as i32, 12.0, Color::RED); + + + + + context_2d.draw_circle(self.position.x as i32, self.position.y as i32, self.size, Color::RED); } fn handle_logic(&mut self, player: &mut crate::player::Player, dt: f64) { - + if self.position.distance_to(player.position).abs() <= self.size + 6.0{ + self.is_knocking_back = true; + + } + + if self.is_knocking_back{ + self.time_knocking_back += dt; + } + + if self.time_knocking_back >= 0.5{ + self.is_knocking_back = false; + self.time_knocking_back = 0.0; + } + + if self.position.distance_to(player.position).abs() <= 100.0{ + self.inflate_timer += dt; + }else{ + self.inflate_timer = 0.0; + } + + self.size = (6.0 * (1.0 + self.inflate_timer / 1.0)).clamp(6.0, 12.0) as f32; + + + + } fn handle_getting_attacked(&mut self, stun_duration: f64, current_time: f64) { diff --git a/src/logic/ingame/playerlogic.rs b/src/logic/ingame/playerlogic.rs index cf9a397..4dc5172 100644 --- a/src/logic/ingame/playerlogic.rs +++ b/src/logic/ingame/playerlogic.rs @@ -202,6 +202,45 @@ pub fn update_player_movement( } + for pufferfish in game_core.world.pufferfish.iter_mut(){ + + if pufferfish.is_knocking_back{ + // Calculates info for formulas + + // Deltas between positions + let net_pose = game_core.player.position - pufferfish.position; + + // Angle between: UNITS: RADIANS + let angle = net_pose.y.atan2(net_pose.x); + + + // Calculates force + let force = 1.0 / game_core.player.position.distance_to(pufferfish.position); + + // Calculates componets of force + let mut force_x = (force as f32 * angle.cos()).clamp(-1.0, 1.0); + let mut force_y = (force as f32 * angle.sin()).clamp(-1.0, 1.0); + + // Prevents Nan erros + if force_x.is_nan(){ + force_x = 1.0 * net_pose.x; + } + + if force_y.is_nan(){ + force_y = 1.0 * net_pose.y; + } + + game_core.player.additional_vel.x += force_x; + game_core.player.additional_vel.y += force_y; + + should_apply_friction = false; + + } + + + + } + if should_apply_friction { game_core.player.additional_vel.x /= PLAYER_FRICTION; game_core.player.additional_vel.y /= PLAYER_FRICTION; From 67899182a45094ba7c5fbf1ad613077eb614748b Mon Sep 17 00:00:00 2001 From: wm-c Date: Mon, 26 Apr 2021 18:24:16 -0400 Subject: [PATCH 12/14] Pufferfish added --- assets/worlds/mainworld.json | 87 +++++++++++++++++- src/entities/enemy/pufferfish.rs | 152 ++++++++++++++++++++++++------- src/logic/ingame/playerlogic.rs | 5 +- src/player.rs | 5 + src/resources.rs | 40 ++++++++ 5 files changed, 250 insertions(+), 39 deletions(-) diff --git a/assets/worlds/mainworld.json b/assets/worlds/mainworld.json index 8cf91cf..5c86b0f 100644 --- a/assets/worlds/mainworld.json +++ b/assets/worlds/mainworld.json @@ -188,14 +188,93 @@ "pufferfish": [ { "position" : { - "x": 400, - "y": 150 + "x": 261, + "y": 387 }, "is_knocking_back": false, "time_knocking_back": 0.0, "inflate_timer": 0.0, - "size": 6.0, - "is_stunned": false + "is_large": false, + "stun_timer": 0.0, + "puffer_state": "SmallIdle" + + }, + { + "position" : { + "x": 195, + "y": 694 + }, + "is_knocking_back": false, + "time_knocking_back": 0.0, + "inflate_timer": 0.0, + "is_large": false, + "stun_timer": 0.0, + "puffer_state": "SmallIdle" + + }, + { + "position" : { + "x": 635, + "y": 731 + }, + "is_knocking_back": false, + "time_knocking_back": 0.0, + "inflate_timer": 0.0, + "is_large": false, + "stun_timer": 0.0, + "puffer_state": "SmallIdle" + + }, + { + "position" : { + "x": 169, + "y": 1104 + }, + "is_knocking_back": false, + "time_knocking_back": 0.0, + "inflate_timer": 0.0, + "is_large": false, + "stun_timer": 0.0, + "puffer_state": "SmallIdle" + + }, + { + "position" : { + "x": 478, + "y": 1333 + }, + "is_knocking_back": false, + "time_knocking_back": 0.0, + "inflate_timer": 0.0, + "is_large": false, + "stun_timer": 0.0, + "puffer_state": "SmallIdle" + + }, + { + "position" : { + "x": 499, + "y": 1775 + }, + "is_knocking_back": false, + "time_knocking_back": 0.0, + "inflate_timer": 0.0, + "is_large": false, + "stun_timer": 0.0, + "puffer_state": "SmallIdle" + + }, + { + "position" : { + "x": 74, + "y": 1259 + }, + "is_knocking_back": false, + "time_knocking_back": 0.0, + "inflate_timer": 0.0, + "is_large": false, + "stun_timer": 0.0, + "puffer_state": "SmallIdle" } diff --git a/src/entities/enemy/pufferfish.rs b/src/entities/enemy/pufferfish.rs index 9031c1c..9f72119 100644 --- a/src/entities/enemy/pufferfish.rs +++ b/src/entities/enemy/pufferfish.rs @@ -2,22 +2,31 @@ use raylib::prelude::*; use serde::{Deserialize, Serialize}; +use crate::{lib::utils::calculate_linear_slide, pallette::TRANSLUCENT_RED_64}; + use super::base::EnemyBase; - -#[derive(Debug, Serialize, Deserialize, Default, Clone)] -pub struct Pufferfish{ - pub position: Vector2, - pub is_knocking_back: bool, - pub time_knocking_back: f64, - - pub inflate_timer: f64, - pub size: f32, - pub is_stunned: bool, +#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)] +pub enum PufferState { + SmallIdle, + Growing, + LargeIdle, + Blowing, } +#[derive(Debug, Serialize, Deserialize, Clone)] +pub struct Pufferfish { + pub position: Vector2, + pub is_knocking_back: bool, + pub time_knocking_back: f64, -impl EnemyBase for Pufferfish{ + pub inflate_timer: f64, + pub is_large: bool, + pub stun_timer: f64, + pub puffer_state: PufferState, +} + +impl EnemyBase for Pufferfish { fn render( &mut self, context_2d: &mut RaylibMode2D, @@ -25,42 +34,121 @@ impl EnemyBase for Pufferfish{ resources: &mut crate::resources::GlobalResources, dt: f64, ) { - + + let is_stunned = self.stun_timer > 0.0; + + // Render the stun ring + if is_stunned { + println!("Stunned"); + let stun_ring_alpha = + calculate_linear_slide(self.stun_timer / 1.0); + context_2d.draw_circle_v( + self.position, + 12.0, + TRANSLUCENT_RED_64.fade(0.55 * stun_ring_alpha as f32), + ); + + self.stun_timer -= dt; + } + + + let angle = player.position.angle_to(self.position).to_degrees(); + match self.puffer_state { + PufferState::SmallIdle => { + resources.pufferfish_small.draw( + context_2d, + Vector2 { + x: self.position.x, + y: self.position.y, + }, + angle, + ); - context_2d.draw_circle(self.position.x as i32, self.position.y as i32, self.size, Color::RED); + if self.position.distance_to(player.position).abs() <= 100.0 && self.inflate_timer > 1.0{ + self.puffer_state = PufferState::Growing; + } + self.is_large = false; + }, + PufferState::Growing => { + self.inflate_timer = 0.0; + resources.pufferfish_expand.draw( + context_2d, + Vector2 { + x: self.position.x, + y: self.position.y, + }, + angle, + ); + + if resources.pufferfish_expand.get_current_frame_id(context_2d) == 3 { + self.puffer_state = PufferState::LargeIdle; + } + self.is_large = true; + + }, + PufferState::LargeIdle => { + self.inflate_timer = 0.0; + resources.pufferfish_big.draw( + context_2d, + Vector2 { + x: self.position.x, + y: self.position.y, + }, + angle, + ); + + if self.position.distance_to(player.position).abs() <= 65.0{ + self.puffer_state = PufferState::Blowing; + self.is_knocking_back = true; + self.time_knocking_back = 0.0; + } + + self.is_large = true; + }, + PufferState::Blowing => { + + resources.pufferfish_attack.draw( + context_2d, + Vector2 { + x: self.position.x, + y: self.position.y, + }, + angle, + ); + + + if resources.pufferfish_expand.get_current_frame_id(context_2d) == 3 && self.inflate_timer > 1.0{ + self.puffer_state = PufferState::SmallIdle; + self.inflate_timer = 0.0; + } + self.is_large = false; + }, + } } fn handle_logic(&mut self, player: &mut crate::player::Player, dt: f64) { - if self.position.distance_to(player.position).abs() <= self.size + 6.0{ - self.is_knocking_back = true; - - } - if self.is_knocking_back{ - self.time_knocking_back += dt; - } + + + self.inflate_timer += dt; + self.time_knocking_back += dt; if self.time_knocking_back >= 0.5{ self.is_knocking_back = false; - self.time_knocking_back = 0.0; } - if self.position.distance_to(player.position).abs() <= 100.0{ - self.inflate_timer += dt; - }else{ + if self.position.distance_to(player.position).abs() > 120.0 && self.is_large { + self.puffer_state = PufferState::Blowing; self.inflate_timer = 0.0; } - self.size = (6.0 * (1.0 + self.inflate_timer / 1.0)).clamp(6.0, 12.0) as f32; - - - - } fn handle_getting_attacked(&mut self, stun_duration: f64, current_time: f64) { - - } -} \ No newline at end of file + + self.stun_timer = stun_duration; + + } +} diff --git a/src/logic/ingame/playerlogic.rs b/src/logic/ingame/playerlogic.rs index 84ca05b..108b829 100644 --- a/src/logic/ingame/playerlogic.rs +++ b/src/logic/ingame/playerlogic.rs @@ -80,7 +80,7 @@ pub fn update_player_movement( game_core .player .begin_attack(&mut game_core.world, draw_handle.get_time()); - println!("{{\"x\":{}, \"y\":{}}},",f32::round(game_core.player.position.x),f32::round(game_core.player.position.y)); + //println!("{{\"x\":{}, \"y\":{}}},",f32::round(game_core.player.position.x),f32::round(game_core.player.position.y)); } // Move the player in their direction @@ -214,9 +214,8 @@ pub fn update_player_movement( // Angle between: UNITS: RADIANS let angle = net_pose.y.atan2(net_pose.x); - // Calculates force - let force = 1.0 / game_core.player.position.distance_to(pufferfish.position); + let force = 1.0; // Calculates componets of force let mut force_x = (force as f32 * angle.cos()).clamp(-1.0, 1.0); diff --git a/src/player.rs b/src/player.rs index b11b086..c173602 100644 --- a/src/player.rs +++ b/src/player.rs @@ -103,6 +103,11 @@ impl Player { if whirlpool.position.distance_to(self.position).abs() <= stun_reach { whirlpool.handle_getting_attacked(self.attacking_timer, current_time); } + } + for pufferfish in world.pufferfish.iter_mut() { + if pufferfish.position.distance_to(self.position).abs() <= stun_reach { + pufferfish.handle_getting_attacked(self.attacking_timer, current_time); + } } } } diff --git a/src/resources.rs b/src/resources.rs index 35b16ac..b890fd8 100644 --- a/src/resources.rs +++ b/src/resources.rs @@ -33,6 +33,10 @@ pub struct GlobalResources { pub octopus_animation_regular: FrameAnimationWrapper, pub octopus_animation_attack: FrameAnimationWrapper, pub whirlpool: FrameAnimationWrapper, + pub pufferfish_big: FrameAnimationWrapper, + pub pufferfish_small: FrameAnimationWrapper, + pub pufferfish_attack: FrameAnimationWrapper, + pub pufferfish_expand: FrameAnimationWrapper, // Darkness layer pub darkness_overlay: Texture2D, @@ -257,6 +261,42 @@ impl GlobalResources { 4, 4, ), + pufferfish_big: FrameAnimationWrapper::new( + raylib.load_texture_from_image( + &thread, + &Image::load_image("./assets/img/enemies/pufferFishBigIdle.png")?, + )?, + Vector2 { x: 19.0, y: 19.0 }, + 3, + 2, + ), + pufferfish_small: FrameAnimationWrapper::new( + raylib.load_texture_from_image( + &thread, + &Image::load_image("./assets/img/enemies/pufferFishIdle.png")?, + )?, + Vector2 { x: 19.0, y: 19.0 }, + 6, + 2, + ), + pufferfish_attack: FrameAnimationWrapper::new( + raylib.load_texture_from_image( + &thread, + &Image::load_image("./assets/img/enemies/pufferFishAttack.png")?, + )?, + Vector2 { x: 39.0, y: 25.0 }, + 4, + 2, + ), + pufferfish_expand: FrameAnimationWrapper::new( + raylib.load_texture_from_image( + &thread, + &Image::load_image("./assets/img/enemies/pufferFishExpand.png")?, + )?, + Vector2 { x: 19.0, y: 19.0 }, + 4, + 2, + ), }) } } From 24fae60c4cc1ddefb69754a39f124b0bfc0ed7b0 Mon Sep 17 00:00:00 2001 From: wm-c Date: Mon, 26 Apr 2021 19:41:52 -0400 Subject: [PATCH 13/14] tutorial images --- assets/img/map/tutorial1.png | Bin 0 -> 306 bytes assets/img/map/tutorial2.png | Bin 0 -> 286 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 assets/img/map/tutorial1.png create mode 100644 assets/img/map/tutorial2.png diff --git a/assets/img/map/tutorial1.png b/assets/img/map/tutorial1.png new file mode 100644 index 0000000000000000000000000000000000000000..29f3a8be810c2a27349baf5433d2c09ce833af09 GIT binary patch literal 306 zcmV-20nPr2P)Px#>`6pHR9J=WmoW~*APhxm)r(~Ap1b6Py-W7Yy-Ft}1m6Uw*w_khM4&u=ut`F= z3;Xx|8ST)_l$FAQ>~pk0S5TrBQm*1onv!!Nol1@pCX3E=f)r`8`3B5x2+79r5k3zj zvM$GlCf6jXHN7c>L%`BVHl0)3Xis3#t;?}-J3_ujib6O(G^WLo(2y>KwUW9@(~+Px#*hxe|R9J=WnLQ4GAPh#U@gmOd-o+Do7j|c_;$%XM{1p3X8~YZOK=Wd15g-B( z_Gv}LB_isi1IDuRxGmE0MLA`!SCzzase82`C3{q06fTU$oUl2>CXQTXP&a{GWlPVW zawk*U_BtsEZaW8aRlTJD~yQA8iWuo^&3*1(Nk?n zo|PV&-|(YBYI3-Cu(UAze*={gIm}HQF039-sglTHku_b7h`M#1X?$-j!iCZNR~We$ k0ppD`j(?vbogmZT03$e}tB{1%S^xk507*qoM6N<$g5RNbF8}}l literal 0 HcmV?d00001 From 2653c9e127718de3740101cce3cc356a949afc87 Mon Sep 17 00:00:00 2001 From: Evan Pratten Date: Mon, 26 Apr 2021 19:44:55 -0400 Subject: [PATCH 14/14] loading logo --- src/logic/loadingscreen.rs | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/src/logic/loadingscreen.rs b/src/logic/loadingscreen.rs index ba13c53..df5293c 100644 --- a/src/logic/loadingscreen.rs +++ b/src/logic/loadingscreen.rs @@ -49,30 +49,30 @@ impl LoadingScreen { win_height: i32, win_width: i32, ) { - // Determine how far through rendering this logo we are - // This value is used to determine the logo alpha - let playthrough_percent = - (draw_handle.get_time() - self.last_state_switch_time) / SECONDS_PER_LOGO; + // // Determine how far through rendering this logo we are + // // This value is used to determine the logo alpha + // let playthrough_percent = + // (draw_handle.get_time() - self.last_state_switch_time) / SECONDS_PER_LOGO; - // Build a color mask - let mask = self.get_logo_mask(playthrough_percent); + // // Build a color mask + // let mask = self.get_logo_mask(playthrough_percent); - // Get the logo - let logo = &game_core.resources.game_logo; + // // Get the logo + // let logo = &game_core.resources.game_logo; - // Render the logo - draw_handle.draw_texture( - logo, - (win_width / 2) - (logo.width / 2), - (win_height / 2) - (logo.height / 2), - mask, - ); + // // Render the logo + // draw_handle.draw_texture( + // logo, + // (win_width / 2) - (logo.width / 2), + // (win_height / 2) - (logo.height / 2), + // mask, + // ); // Move on to next logo if needed - if playthrough_percent >= 1.0 { + // if playthrough_percent >= 1.0 { self.state = LoadingScreenState::RaylibLogo; self.last_state_switch_time = draw_handle.get_time(); - } + // } } fn show_raylib_logo(