From ee867cf82784fb5e48a254835e9e0e952882d330 Mon Sep 17 00:00:00 2001 From: Ben Frankel Date: Mon, 11 Dec 2023 00:28:00 -0800 Subject: [PATCH] Balance some more --- src/simulation.rs | 10 ++++++++-- src/state/editor_screen/scene_view.rs | 1 + src/upgrade.rs | 18 +++++++++++------- 3 files changed, 20 insertions(+), 9 deletions(-) diff --git a/src/simulation.rs b/src/simulation.rs index c065628..57cd6bb 100644 --- a/src/simulation.rs +++ b/src/simulation.rs @@ -198,6 +198,7 @@ const MAX_SPAWN_PER_EVENT: usize = 8; pub struct SpawnEvent { pub position: Vec2, pub count: f64, + pub custom_cap: Option, } fn spawn_entities(world: &mut World, mut reader: Local>) { @@ -213,8 +214,12 @@ fn spawn_entities(world: &mut World, mut reader: Local(); let mut spawn_count = event.count as usize; if simulation.entities >= ENTITY_CAP as f64 { - spawn_count = MAX_SPAWN_PER_EVENT.min(spawn_count); + spawn_count = event + .custom_cap + .unwrap_or(MAX_SPAWN_PER_EVENT) + .min(spawn_count); } + let mut bundles = vec![]; for _ in 0..spawn_count { let angle = rng.gen_range(0.0..=TAU); @@ -245,7 +250,6 @@ fn spawn_entities(world: &mut World, mut reader: Local().recycle(); let mut entity = world.entity_mut(entity); @@ -353,6 +357,7 @@ fn spawn_entities_passively( events.send(SpawnEvent { position: (bounds.min.xy() + bounds.max.xy()) / 2.0, count: spawner.amount, + custom_cap: None, }); } @@ -381,6 +386,7 @@ fn handle_line_added_events( spawn_events.send(SpawnEvent { position: (bounds.min.xy() + bounds.max.xy()) / 2.0, count: spawned_entities, + custom_cap: None, }); } } diff --git a/src/state/editor_screen/scene_view.rs b/src/state/editor_screen/scene_view.rs index 6439283..618a7cc 100644 --- a/src/state/editor_screen/scene_view.rs +++ b/src/state/editor_screen/scene_view.rs @@ -79,6 +79,7 @@ fn click_spawn( events.send(SpawnEvent { position, count: scene_view.spawns_per_click, + custom_cap: Some(250), }); scene_view.spawns_per_click *= scene_view.spawns_per_click_multiplier_per_click; } diff --git a/src/upgrade.rs b/src/upgrade.rs index 51f17e0..9855bb1 100644 --- a/src/upgrade.rs +++ b/src/upgrade.rs @@ -443,6 +443,7 @@ generate_upgrade_list!( spawn_events.send(SpawnEvent { count: simulation.entities * 3.0, position: (bounds.min.xy() + bounds.max.xy()) / 2.0, + custom_cap: None, }); line_events.send(LinesAddedEvent { count: simulation.lines * 3.0, @@ -604,7 +605,7 @@ generate_upgrade_list!( base_cost: 2_000.0, cost_scale_factor: 1.2, weight: 0.25, - entity_min: 400.0, + entity_min: 1_000.0, install: Some(world.register_system(| mut physics_settings: ResMut, | { @@ -642,6 +643,7 @@ generate_upgrade_list!( events.send(SpawnEvent { position: (bounds.min.xy() + bounds.max.xy()) / 2.0, count: this.value, + custom_cap: Some(200), }); }), ), @@ -675,6 +677,7 @@ generate_upgrade_list!( events.send(SpawnEvent { position: (bounds.min.xy() + bounds.max.xy()) / 2.0, count: simulation.lines, + custom_cap: Some(2000), }); simulation.lines = 0.0; @@ -702,6 +705,7 @@ generate_upgrade_list!( events.send(SpawnEvent { position: (bounds.min.xy() + bounds.max.xy()) / 2.0, count: 1.0, + custom_cap: None, }); for mut scene_view in &mut scene_view_query { @@ -716,7 +720,7 @@ generate_upgrade_list!( name: "Laptop Sticker".to_string(), desc: "Spawns 1 more entity per click.".to_string(), base_cost: 15.0, - weight: 1.0, + weight: 2.0, remaining: 4, install: Some( world.register_system(|mut scene_view_query: Query<&mut SceneView>| { @@ -953,7 +957,7 @@ generate_upgrade_list!( Types an extra 5 characters per key press.\ ".to_string(), sound: Some(SoundEffectKind::Keyboard), - base_cost: 20.0, + base_cost: 15.0, install: Some(world.register_system(| mut typer_query: Query<&mut CodeTyper>, | { @@ -1009,9 +1013,9 @@ generate_upgrade_list!( sound: Some(SoundEffectKind::Keyboard), no_count: true, base_cost: 150.0, - weight: 2.5, + weight: 3.5, remaining: 3, - entity_min: 250.0, + entity_min: 150.0, installed_min: vec![(MechanicalKeyboard, 1)], install: Some(world.register_system(| mut typer_query: Query<&mut CodeTyper>, @@ -1156,8 +1160,8 @@ generate_upgrade_list!( tech_debt: -5.0, base_cost: 50.0, cost_scale_factor: 1.5, - weight: 2.0, - remaining: 8, + weight: 4.0, + remaining: 10, tech_debt_min: 5.0, install: Some(world.register_system(|mut upgrade_list: ResMut| { let this = &mut upgrade_list[Refactor];