diff --git a/server/leanserver/GameServer/Commands.lean b/server/leanserver/GameServer/Commands.lean index 1030396..fd1044c 100644 --- a/server/leanserver/GameServer/Commands.lean +++ b/server/leanserver/GameServer/Commands.lean @@ -431,13 +431,18 @@ elab "MakeGame" : command => do for item in (level.getInventory inventoryType).new do let category := (← getInventoryDoc? item inventoryType).get!.category items := items.insert item {name := item, category, locked := false, disabled := false} + + let mut disabled : HashSet Name := {} for item in (level.getInventory inventoryType).disabled do let category := (← getInventoryDoc? item inventoryType).get!.category - items := items.insert item {name := item, category, locked := false, disabled := true} + items := items.insert item {name := item, category, locked := false, disabled := false} + -- (we set disabled to false at first because it applies only to the current level) + disabled := disabled.insert item let itemsArray := items.toArray |>.insertionSort (fun a b => a.1.toString < b.1.toString) |>.map (·.2) + |>.map (fun item => {item with disabled := disabled.contains item.name}) modifyLevel ⟨← getCurGameId, worldId, levelId⟩ fun level => do return level.setComputedInventory inventoryType itemsArray