Implement a few player pickups
This commit is contained in:
parent
c138aeb228
commit
616a4d580a
5 changed files with 154 additions and 28 deletions
|
|
@ -10,18 +10,65 @@ pub struct Stats {
|
|||
type PlayerSurvived = bool;
|
||||
|
||||
impl Stats {
|
||||
pub fn take_gems(&mut self, num_gems: u32) -> PlayerSurvived {
|
||||
let new_num_gems = self.gems as i64 - num_gems as i64;
|
||||
if new_num_gems <= 0 {
|
||||
self.gems = 0;
|
||||
false
|
||||
} else {
|
||||
self.gems = new_num_gems as u32;
|
||||
true
|
||||
}
|
||||
}
|
||||
|
||||
pub fn add_score(&mut self, score: u32) {
|
||||
self.score += score;
|
||||
}
|
||||
|
||||
pub fn take_score(&mut self, score: u32) {
|
||||
if let Some(result) = self.score.checked_sub(score) {
|
||||
self.score = result;
|
||||
} else {
|
||||
self.score = 0;
|
||||
}
|
||||
}
|
||||
|
||||
pub fn give_gems(&mut self, num_gems: u32) {
|
||||
self.gems += num_gems;
|
||||
}
|
||||
|
||||
pub fn take_gems(&mut self, num_gems: u32) -> PlayerSurvived {
|
||||
if let Some(result) = self.gems.checked_sub(num_gems) {
|
||||
self.gems = result;
|
||||
true
|
||||
} else {
|
||||
self.gems = 0;
|
||||
false
|
||||
}
|
||||
}
|
||||
|
||||
pub fn give_whips(&mut self, num_whips: u32) {
|
||||
self.whips += num_whips;
|
||||
}
|
||||
|
||||
pub fn take_whips(&mut self, num_whips: u32) {
|
||||
if let Some(result) = self.whips.checked_sub(num_whips) {
|
||||
self.whips = result;
|
||||
} else {
|
||||
self.whips = 0;
|
||||
}
|
||||
}
|
||||
|
||||
pub fn give_teleports(&mut self, num_teleports: u32) {
|
||||
self.teleports += num_teleports;
|
||||
}
|
||||
|
||||
pub fn take_teleports(&mut self, num_teleports: u32) {
|
||||
if let Some(result) = self.teleports.checked_sub(num_teleports) {
|
||||
self.teleports = result;
|
||||
} else {
|
||||
self.teleports = 0;
|
||||
}
|
||||
}
|
||||
|
||||
pub fn give_keys(&mut self, num_keys: u32) {
|
||||
self.keys += num_keys;
|
||||
}
|
||||
|
||||
pub fn take_keys(&mut self, num_keys: u32) {
|
||||
if let Some(result) = self.keys.checked_sub(num_keys) {
|
||||
self.keys = result;
|
||||
} else {
|
||||
self.keys = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue