diff options
-rw-r--r-- | client/menu/main.gd | 1 | ||||
-rw-r--r-- | client/menu/overlay.gd | 6 | ||||
-rw-r--r-- | server/src/entity/conveyor.rs | 1 | ||||
-rw-r--r-- | server/src/entity/portal.rs | 1 | ||||
-rw-r--r-- | server/src/game.rs | 9 |
5 files changed, 13 insertions, 5 deletions
diff --git a/client/menu/main.gd b/client/menu/main.gd index a6f092d1..32dd993e 100644 --- a/client/menu/main.gd +++ b/client/menu/main.gd @@ -45,7 +45,6 @@ func _on_connect_pressed(): var url = connect_uri.text var result := url_regex.search(url) if result != null: - print(result.strings) if result.get_string(1) == "": url = "ws://" + url # only set default port for non-tls websocket connections diff --git a/client/menu/overlay.gd b/client/menu/overlay.gd index 46750b31..e80a00f9 100644 --- a/client/menu/overlay.gd +++ b/client/menu/overlay.gd @@ -43,10 +43,10 @@ func update(failed_: int, completed_: int, points_: int, time: float): points_label.text = str(points_) points_label.scale = LABEL_SCALE points = points_ - timer.wait_time = time - if timer.is_stopped(): - timer.start() + timer.stop() + timer.wait_time = time + timer.start() func set_ingame(_state: bool, lobby: bool): if lobby: diff --git a/server/src/entity/conveyor.rs b/server/src/entity/conveyor.rs index 7f3d8688..b370356c 100644 --- a/server/src/entity/conveyor.rs +++ b/server/src/entity/conveyor.rs @@ -77,6 +77,7 @@ impl EntityT for Conveyor { Some(to.kind), packet_out, &mut game.score, + &mut game.score_changed, true, ); } diff --git a/server/src/entity/portal.rs b/server/src/entity/portal.rs index dc376681..3ed19719 100644 --- a/server/src/entity/portal.rs +++ b/server/src/entity/portal.rs @@ -50,6 +50,7 @@ impl EntityT for Portal { Some(to.kind), packet_out, &mut game.score, + &mut game.score_changed, true, ); } diff --git a/server/src/game.rs b/server/src/game.rs index 89ea7dfc..1692de34 100644 --- a/server/src/game.rs +++ b/server/src/game.rs @@ -136,7 +136,10 @@ impl Game { self.lobby = gamedata.map_name == "lobby"; self.data = gamedata.into(); - self.score = Score::default(); + self.score = Score { + time_remaining: timer.map(|dur| dur.as_secs_f64()).unwrap_or(0.), + ..Default::default() + }; self.end = timer.map(|dur| Instant::now() + dur); self.entities = Arc::new(RwLock::new(self.data.entities.clone())); @@ -415,6 +418,7 @@ impl Game { None, packet_out, &mut self.score, + &mut self.score_changed, false, ) } else { @@ -433,6 +437,7 @@ impl Game { Some(tile.kind), packet_out, &mut self.score, + &mut self.score_changed, false, ) } @@ -628,6 +633,7 @@ pub fn interact_effect( this_tile_kind: Option<TileIndex>, packet_out: &mut VecDeque<PacketC>, score: &mut Score, + score_changed: &mut bool, automated: bool, ) { let this_had_item = this.is_some(); @@ -651,6 +657,7 @@ pub fn interact_effect( } InteractEffect::Produce => { info!("produce {this_loc} <~ {other_loc}"); + *score_changed = true; if this_had_item { packet_out.push_back(PacketC::SetProgress { item: this_loc, |