From 1e89f54b6427e57cce972c79d7b555783f3d0b45 Mon Sep 17 00:00:00 2001 From: DeityLink Date: Sun, 20 Jun 2021 04:21:57 +0200 Subject: [PATCH] fix extra large stacks (#29811) --- __DEFINES/setup.dm | 2 ++ code/game/objects/items/stacks/sheets/sheets.dm | 4 +++- code/modules/research/rdmachines.dm | 7 ++++++- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/__DEFINES/setup.dm b/__DEFINES/setup.dm index 15452f0ac99..fc573109c2e 100644 --- a/__DEFINES/setup.dm +++ b/__DEFINES/setup.dm @@ -1652,6 +1652,8 @@ var/proccalls = 1 #define VIOLENCE_DEFAULT 1 #define VIOLENCE_GUN 2 +#define MAX_SHEET_STACK_AMOUNT 50 + // Used to determine which HUD is in use #define HUD_NONE 0 #define HUD_MEDICAL 1 diff --git a/code/game/objects/items/stacks/sheets/sheets.dm b/code/game/objects/items/stacks/sheets/sheets.dm index d46b6623e0a..9f001183a5a 100644 --- a/code/game/objects/items/stacks/sheets/sheets.dm +++ b/code/game/objects/items/stacks/sheets/sheets.dm @@ -1,10 +1,12 @@ + + /obj/item/stack/sheet name = "sheet" flags = FPRINT w_class = W_CLASS_MEDIUM force = 5 throwforce = 5 - max_amount = 50 + max_amount = MAX_SHEET_STACK_AMOUNT throw_speed = 3 throw_range = 3 attack_verb = list("bashes", "batters", "bludgeons", "thrashes", "smashes") diff --git a/code/modules/research/rdmachines.dm b/code/modules/research/rdmachines.dm index 5a45452a445..6cd73ad6e73 100644 --- a/code/modules/research/rdmachines.dm +++ b/code/modules/research/rdmachines.dm @@ -122,10 +122,15 @@ var/global/list/rnd_machines = list() if (materials.storage[matID] == 0) // No materials of this type continue var/datum/material/M = materials.getMaterial(matID) - var/obj/item/stack/sheet/sheet = new M.sheettype(src.loc) + var/obj/item/stack/sheet/sheet = new M.sheettype(loc) if(sheet) var/available_num_sheets = round(materials.storage[matID]/sheet.perunit) if(available_num_sheets>0) + while (available_num_sheets > MAX_SHEET_STACK_AMOUNT) + available_num_sheets -= MAX_SHEET_STACK_AMOUNT + var/obj/item/stack/sheet/bonus_sheet = new M.sheettype(loc) + bonus_sheet.amount = MAX_SHEET_STACK_AMOUNT + materials.removeAmount(matID, MAX_SHEET_STACK_AMOUNT * sheet.perunit) sheet.amount = available_num_sheets materials.removeAmount(matID, sheet.amount * sheet.perunit) else