diff --git a/src/components.rs b/src/components.rs index 8e9e30b..1f158aa 100644 --- a/src/components.rs +++ b/src/components.rs @@ -4,9 +4,14 @@ use bevy::prelude::Component; #[derive(Debug, PartialEq)] pub enum PurchasableObject { - Cookie, Cursor, Grandma, + Farm, + Mine, + Factory, + Bank, + Temple, + WizardTower, } #[derive(Component, Debug)] @@ -21,9 +26,14 @@ impl Display for PurchasableObject { f, "{}", match self { - PurchasableObject::Cookie => "Cookie", PurchasableObject::Cursor => "Cursor", PurchasableObject::Grandma => "Grandma", + PurchasableObject::Farm => "Farm", + PurchasableObject::Mine => "Mine", + PurchasableObject::Factory => "Factory", + PurchasableObject::Bank => "Bank", + PurchasableObject::Temple => "Temple", + PurchasableObject::WizardTower => "Wizard Tower", } ) } @@ -31,39 +41,47 @@ impl Display for PurchasableObject { #[derive(Component, Debug)] pub struct PlayerStats { - pub money: f64, + pub cookies: f64, } impl PlayerStats { pub fn new() -> PlayerStats { - return PlayerStats { money: 10.0 }; + return PlayerStats { cookies: 0.0 }; } } pub fn get_current_price(object: &PurchasableObject, num_owned: &u32) -> f64 { - get_base_price(object) * (1.0 + get_scaling_factor(object) * f64::from(*num_owned)) + get_base_price(object) * (1.0 + get_price_scaling_factor(object) * f64::from(*num_owned)) } pub fn get_base_price(object: &PurchasableObject) -> f64 { match object { - PurchasableObject::Cookie => 10.0, - PurchasableObject::Cursor => 100.0, - PurchasableObject::Grandma => 1000.0, + PurchasableObject::Cursor => 15.0, + PurchasableObject::Grandma => 100.0, + PurchasableObject::Farm => 1_100.0, + PurchasableObject::Mine => 21_000.0, + PurchasableObject::Factory => 130_000.0, + PurchasableObject::Bank => 1_400_000.0, + PurchasableObject::Temple => 20_000_000.0, + PurchasableObject::WizardTower => 330_000_000.0, } } -pub fn get_scaling_factor(object: &PurchasableObject) -> f64 { +pub fn get_price_scaling_factor(object: &PurchasableObject) -> f64 { match object { - PurchasableObject::Cookie => 0.10, - PurchasableObject::Cursor => 0.15, - PurchasableObject::Grandma => 0.20, + _ => 0.15, } } pub fn get_base_returns(object: &PurchasableObject) -> f64 { match object { - PurchasableObject::Cookie => 1.0, - PurchasableObject::Cursor => 2.0, - PurchasableObject::Grandma => 5.0, + PurchasableObject::Cursor => 0.1, + PurchasableObject::Grandma => 1.0, + PurchasableObject::Farm => 8.0, + PurchasableObject::Mine => 47.0, + PurchasableObject::Factory => 260.0, + PurchasableObject::Bank => 1_400.0, + PurchasableObject::Temple => 7_800.0, + PurchasableObject::WizardTower => 44_000.0, } } diff --git a/src/main.rs b/src/main.rs index ce9ea31..cb748c4 100644 --- a/src/main.rs +++ b/src/main.rs @@ -4,6 +4,12 @@ use bevy::app::{App, FixedUpdate}; use bevy::prelude::*; use components::*; +#[derive(Debug)] +enum InputAction { + TapCookie, + Purchase(PurchasableObject), +} + fn main() { App::new() .add_plugins(DefaultPlugins) @@ -14,10 +20,6 @@ fn main() { fn setup(mut commands: Commands) { commands.spawn(PlayerStats::new()); - commands.spawn(Purchased { - object: PurchasableObject::Cookie, - count: 1, - }); } fn get_cash(time: Res