Merge branch 'master' of ssh://mnml.gg:40022/~/mnml

This commit is contained in:
Mashy
2019-05-29 11:50:15 +10:00
5 changed files with 26 additions and 13 deletions
+4 -1
View File
@@ -48,6 +48,8 @@ pub struct ConstructSkill {
pub skill: Skill,
pub self_targeting: bool,
pub cd: Cooldown,
// used for UI on client
pub disabled: bool,
}
impl ConstructSkill {
@@ -56,6 +58,7 @@ impl ConstructSkill {
skill,
self_targeting: skill.self_targeting(),
cd: skill.base_cd(),
disabled: false,
}
}
}
@@ -101,7 +104,7 @@ impl ConstructEffect {
Some(EffectMeta::Multiplier(s)) => s,
_ => 0
}
}
}
+19 -2
View File
@@ -38,6 +38,7 @@ pub struct Game {
pub log: Vec<String>,
pub instance: Option<Uuid>,
phase_end: DateTime<Utc>,
phase_start: DateTime<Utc>,
}
impl Game {
@@ -53,6 +54,7 @@ impl Game {
log: vec![],
instance: None,
phase_end: Utc::now(),
phase_start: Utc::now(),
};
}
@@ -92,6 +94,7 @@ impl Game {
let player_description = player.constructs.iter().map(|c| c.name.clone()).collect::<Vec<String>>().join(", ");
self.log.push(format!("{:} has joined the game. [{:}]", player.name, player_description));
player.constructs.sort_unstable_by_key(|c| c.id);
self.players.push(player);
Ok(self)
@@ -163,13 +166,27 @@ impl Game {
}
fn skill_phase_start(mut self) -> Game {
self.phase_start = Utc::now();
self.phase_end = Utc::now()
.checked_add_signed(Duration::seconds(60))
.expect("could not set phase end");
for player in self.players.iter_mut() {
if player.skills_required() != 0 {
player.set_ready(false);
if player.skills_required() == 0 {
continue;
}
player.set_ready(false);
for construct in player.constructs.iter_mut() {
for i in 0..construct.skills.len() {
if let Some(_d) = construct.disabled(construct.skills[i].skill) {
// info!("{:?} disabled {:?}", construct.skills[i].skill, d);
construct.skills[i].disabled = true;
} else {
construct.skills[i].disabled = false;
}
}
}
}