chiark / gitweb /
currency: Occult multigrab taken log properly
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Fri, 20 May 2022 18:13:43 +0000 (19:13 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Fri, 20 May 2022 18:19:44 +0000 (19:19 +0100)
Also rename two variables to be more accurate.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/currency.rs

index e42e7825700426f004436b83e09817d5be47e636..31c4193467a09dfff5e862b9c5973b6269e5bb2a 100644 (file)
@@ -143,18 +143,21 @@ impl PieceTrait for Banknote {
   }
 
   #[throws(ApiPieceOpError)]
-  fn op_multigrab(&self, _: ApiPieceOpArgs, show: ShowUnocculted,
+  fn op_multigrab(&self, _: ApiPieceOpArgs, show_to_player: ShowUnocculted,
                   take: MultigrabQty, new_z: ShouldSetZLevel) -> OpOutcomeThunk {
     let currency = self.currency.clone();
     OpOutcomeThunk::Reborrow(Box::new(
       move |ig: &mut InstanceGuard, (player, tpiece)|
   {
-    ig.fastsplit_split(player, tpiece, show, new_z,
+    ig.fastsplit_split(player, tpiece, show_to_player, new_z,
       move |_: &IOccults, _: &GOccults, gpl: &GPlayer,
             tgpc: &mut GPiece, tipc: &IPiece,
             ngpc: &mut GPiece|
   {
-    let self_: &Banknote = tipc.p.show(show).downcast_piece_fastsplit()?;
+    // A player who can see it can split it
+    let self_unocc: &Banknote = tipc.p.show(show_to_player)
+      .downcast_piece_fastsplit()?;
+    let show_to_all = tgpc.fully_visible_to_everyone();
 
     let tgpc_value: &mut Value = tgpc.xdata.get_mut_exp()?;
     let remaining = tgpc_value.qty.checked_sub(take)
@@ -171,7 +174,7 @@ impl PieceTrait for Banknote {
     let logents = vec![ LogEntry { html: hformat!(
       "{} took {}, leaving {}{}",
       gpl.nick.to_html(),
-      self_.describe(tgpc.face, &tgpc_value.html(Some(show)))?,
+      self_unocc.describe(tgpc.face, &tgpc_value.html(show_to_all))?,
       remaining, &currency,
     )}];