Skip to content

Commit 4a2f7c7

Browse files
Added stars
They don't save yet but arghhh
1 parent 97f97a0 commit 4a2f7c7

File tree

4 files changed

+36
-13
lines changed

4 files changed

+36
-13
lines changed

src/funcs.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -423,7 +423,7 @@ impl MainLevel {
423423
song: song.to_string(),
424424
artist: artist.to_string(),
425425
creator: creator.to_string(),
426-
// completed: false,
426+
completed: false,
427427
data: data.to_string()
428428
}
429429
}

src/game/playing/hitboxes.rs

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ use std::cell::Cell;
22

33
use macroquad::prelude::*;
44

5-
use crate::types::{GameMode, GameState, ObjectStruct};
5+
use crate::types::{GameMode, GameState, MainLevel, ObjectStruct};
66

77
pub fn hitbox_collision(
88
player: &mut Rect,
@@ -28,7 +28,11 @@ pub fn hitbox_collision(
2828
cc_1002: &mut Color,
2929
cc_1003: &mut Color,
3030
game_state: &Cell<GameState>,
31-
on_pad: &mut bool
31+
on_pad: &mut bool,
32+
stars: &mut u32,
33+
main_levels: &mut Vec<MainLevel>,
34+
level_mode: u8,
35+
current_level: u8
3236
) {
3337
for object in obj_grid {
3438
let obj_y = ((screen_height() / 1.15 - 25.0) + (object.y as f32 - 500.0)) + 6.0;
@@ -225,6 +229,10 @@ pub fn hitbox_collision(
225229
w: 40.0,
226230
h: 40.0
227231
}) {
232+
if level_mode == 1 && !main_levels[current_level as usize].completed {
233+
main_levels[current_level as usize].completed = true;
234+
*stars += main_levels[current_level as usize].difficulty as u32
235+
}
228236
game_state.set(GameState::LevelComplete)
229237
}
230238
}

src/main.rs

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -339,7 +339,7 @@ async fn main() {
339339
let mut cam_pos_x: f32 = 0.0;
340340
let mut current_obj: u16 = 1;
341341
let grid_size: u8 = 40;
342-
let mut from_editor: bool = false;
342+
let mut level_mode: u8 = 1;
343343

344344
println!("Getting latest version...");
345345
let version: &str = "F-ALPHA";
@@ -356,7 +356,7 @@ async fn main() {
356356
"version:{};song:./Resources/Music/main-level-songs/0.mp3;cc_1001:0,0,0.2;cc_1002:0,0,0.3;;;x:400;y:480;rot:0;id:1",
357357
level_version
358358
);
359-
let main_levels: Vec<MainLevel> = vec![
359+
let mut main_levels: Vec<MainLevel> = vec![
360360
MainLevel::new(
361361
"Plummet",
362362
1,
@@ -412,6 +412,7 @@ async fn main() {
412412
let mut on_pad_timer: Timer = Timer::new(0.1);
413413
let mut on_pad: bool = false;
414414
let mut player_trail: Vec<Vec2> = vec![];
415+
let mut stars: u32 = 0;
415416

416417
let mut cc_1001: Color = Color::new(0.0, 0.0, 0.2, 1.0);
417418
let mut cc_1002: Color = Color::new(0.0, 0.0, 0.3, 1.0);
@@ -675,7 +676,11 @@ async fn main() {
675676
&mut cc_1002,
676677
&mut cc_1003,
677678
&game_state.0,
678-
&mut on_pad
679+
&mut on_pad,
680+
&mut stars,
681+
&mut main_levels,
682+
level_mode,
683+
current_level
679684
);
680685

681686
match current_gamemode {
@@ -726,7 +731,7 @@ async fn main() {
726731
movement_speed.0.set(default_movement_speed.0.get());
727732
gravity.0.set(default_gravity.0.get());
728733
jump_force.0.set(default_jump_force.0.get());
729-
from_editor = false;
734+
level_mode = 1;
730735
kill_player = false;
731736
player_trail.clear();
732737
restart_audio(&sink);
@@ -742,7 +747,7 @@ async fn main() {
742747
on_pad = false;
743748
}
744749

745-
if from_editor {
750+
if level_mode == 2 {
746751
player_trail.push(vec2(
747752
player.x + world_offset,
748753
player.y
@@ -758,7 +763,7 @@ async fn main() {
758763
movement_speed.0.set(default_movement_speed.clone().0.get());
759764
gravity.0.set(default_gravity.0.get());
760765
jump_force.0.set(default_jump_force.0.get());
761-
from_editor = false;
766+
level_mode = 1;
762767

763768
stop_audio(&sink);
764769
play_audio_path("Resources/Music/menu-music.mp3", master_volume, true, &sink);
@@ -847,7 +852,7 @@ async fn main() {
847852
}
848853

849854
if editor_playtest_button.is_clicked() {
850-
from_editor = true;
855+
level_mode = 2;
851856
player_trail.clear();
852857
stop_audio(&sink);
853858
play_audio_path(&current_song, master_volume, false, &sink);
@@ -918,7 +923,7 @@ async fn main() {
918923
movement_speed.0.set(default_movement_speed.clone().0.get());
919924
gravity.0.set(default_gravity.0.get());
920925
jump_force.0.set(default_jump_force.0.get());
921-
from_editor = false;
926+
level_mode = 1;
922927
player_trail.clear();
923928

924929
stop_audio(&sink);
@@ -1158,6 +1163,7 @@ async fn main() {
11581163
);
11591164

11601165
if load_level_result == "ok" {
1166+
level_mode = 3;
11611167
game_state.0.set(GameState::Playing);
11621168
} else {
11631169
println!("Problem loading level: {}", load_level_result);
@@ -1225,6 +1231,15 @@ async fn main() {
12251231
&font
12261232
);
12271233

1234+
draw_text_pro(
1235+
&format!("Stars: {}", stars),
1236+
20.0,
1237+
120.0,
1238+
20,
1239+
RED,
1240+
&font
1241+
);
1242+
12281243
if cfg!(debug_assertions) {
12291244
draw_text_pro(
12301245
"Developer Build",
@@ -1408,7 +1423,7 @@ async fn main() {
14081423
);
14091424
}
14101425

1411-
if from_editor {
1426+
if level_mode == 2 {
14121427
for point in &player_trail {
14131428
draw_circle(point.x - world_offset, point.y, 5.0, LIME);
14141429
}

src/types.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ pub struct MainLevel {
6666
pub song: String,
6767
pub artist: String,
6868
pub creator: String,
69-
// pub completed: bool,
69+
pub completed: bool,
7070
pub data: String
7171
}
7272

0 commit comments

Comments
 (0)