Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions src/economy.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@

// Base price and price multiplier for CPU
const CPU_BASE_PRICE: f64 = 1.0;
const CPU_PRICE_MULTIPLIER: f64 = 1.020;
const CPU_PRICE_MULTIPLIER: f64 = 1.030;

// Base price and price multiplier for RAM
const RAM_BASE_PRICE: f64 = 1.0;
const RAM_PRICE_MULTIPLIER: f64 = 1.030;
const RAM_PRICE_MULTIPLIER: f64 = 1.040;

// Base price and price multiplier for Disk
const DISK_BASE_PRICE: f64 = 1.0;
const DISK_PRICE_MULTIPLIER: f64 = 1.025;
const DISK_PRICE_MULTIPLIER: f64 = 1.035;

// Perks price
pub const CI_CD_PRICE: f64 = 5.0;
Expand Down
12 changes: 6 additions & 6 deletions src/parameters.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@ use crate::statefile::GameState;

// Base and minimum compile time (in seconds)
const BASE_COMPILE_TIME: f64 = 300.0;
const MIN_COMPILE_TIME: f64 = 5.0;
const MIN_COMPILE_TIME: f64 = 10.0;

// Base and minimum credit reward for a successful compilation
const BASE_CREDIT_REWARD: f64 = 1.0;
const MIN_CREDIT_REWARD: f64 = 0.5;

// Base and minimum / maximum probability of compilation failure
const BASE_COMPILATION_FAILURE_PROB: f64 = 0.30;
const BASE_COMPILATION_FAILURE_PROB: f64 = 0.25;
const MIN_COMPILATION_FAILURE_PROB: f64 = 0.05;
const MAX_COMPILATION_FAILURE_PROB: f64 = 0.90;

Expand All @@ -38,13 +38,13 @@ pub fn credit_reward(ram: u64, disk: u64) -> f64 {
}

// Calculate compilation failure probability based on CPU and Disk
// - Each additional GB of Disk reduces the probability of compilation failure by 1.5%
// - Each additional CPU core increases the probability of compilation failure by 1%
// - Each additional GB of Disk reduces the probability of compilation failure by 1%
// - Each additional CPU core increases the probability of compilation failure by 0.75%
// - Minimum probability is capped at `MIN_COMPILATION_FAILURE_PROB`
// - Maximum probability is capped at `MAX_COMPILATION_FAILURE_PROB`
pub fn failure_probability(cpu: u64, disk: u64) -> f64 {
let probability = BASE_COMPILATION_FAILURE_PROB - 0.015 * (disk.saturating_sub(1) as f64)
+ 0.010 * (cpu.saturating_sub(1) as f64);
let probability = BASE_COMPILATION_FAILURE_PROB - 0.010 * (disk.saturating_sub(1) as f64)
+ 0.0075 * (cpu.saturating_sub(1) as f64);

probability.clamp(MIN_COMPILATION_FAILURE_PROB, MAX_COMPILATION_FAILURE_PROB)
}
Expand Down