standardise stats

This commit is contained in:
ntr 2019-03-15 21:18:45 +11:00
parent 15e78a63db
commit fac6191c2e

View File

@ -195,45 +195,6 @@ impl Cryp {
}
}
// pub fn add_xp(mut self) -> Cryp {
// self.xp = self.xp.saturating_add(1);
// if self.xp.is_power_of_two() {
// return self.level_up();
// }
// self
// }
// pub fn level_up(mut self) -> Cryp {
// self.lvl = self.lvl.saturating_add(1);
// self.create()
// }
pub fn roll_stat(&mut self, stat: Stat) -> &mut Cryp {
let mut rng = thread_rng();
let stam_min = 512u64.saturating_mul(self.lvl.into());
let stam_max = 1024u64.saturating_mul(self.lvl.into());
let stat_min = 128u64.saturating_mul(self.lvl.into());
let stat_max = 256u64.saturating_mul(self.lvl.into());
let evasion_min = 1u64;
let evasion_max = 5;
match stat {
Stat::RedDamage => self.red_damage.set(rng.gen_range(stat_min, stat_max), &self.specs),
Stat::BlueDamage => self.blue_damage.set(rng.gen_range(stat_min, stat_max), &self.specs),
Stat::Speed => self.speed.set(rng.gen_range(stat_min, stat_max), &self.specs),
Stat::Hp => self.hp.set(rng.gen_range(stam_min, stam_max), &self.specs),
Stat::BlueShield => self.blue_shield.set(rng.gen_range(stat_min, stat_max), &self.specs),
Stat::RedShield => self.red_shield.set(rng.gen_range(stat_min, stat_max), &self.specs),
Stat::Evasion => self.evasion.set(rng.gen_range(evasion_min, evasion_max), &self.specs),
_ => panic!("{:?} not a rollable stat", stat),
};
self
}
pub fn create(mut self) -> Cryp {
let xp = match self.lvl == 64 {
true => u64::max_value(),
@ -242,10 +203,10 @@ impl Cryp {
self.xp = xp;
self.roll_stat(Stat::RedDamage);
self.roll_stat(Stat::BlueDamage);
self.roll_stat(Stat::Speed);
self.roll_stat(Stat::Hp);
self.red_damage.set(256, &self.specs);
self.blue_damage.set(256, &self.specs);
self.speed.set(128, &self.specs);
self.hp.set(1024, &self.specs);
self
}