Merge branch 'master' of ssh://mnml.gg:40022/~/mnml
This commit is contained in:
@@ -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
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user