Minesweeper[emagged ? " EXTREME EDITION: Iteration #[randomnumber]" : ""] " //Different colour mix for every random number made
- dat += " [emagged ? "Explode in the game, explode in real life" : "Reveal all the squares without hitting a mine"]! What difficulty do you want to play?
" //Make unique hrefs for every square
- if(10)
- web += "
[MINESWEEPERIMG(minehit)]
"
- if(11)
- web += "
[MINESWEEPERIMG(empty)]
"
- if(12)
- web += "
[MINESWEEPERIMG(1)]
"
- if(13)
- web += "
[MINESWEEPERIMG(2)]
"
- if(14)
- web += "
[MINESWEEPERIMG(3)]
"
- if(15)
- web += "
[MINESWEEPERIMG(4)]
"
- if(16)
- web += "
[MINESWEEPERIMG(5)]
"
- if(17)
- web += "
[MINESWEEPERIMG(6)]
"
- if(18)
- web += "
[MINESWEEPERIMG(7)]
"
- if(19)
- web += "
[MINESWEEPERIMG(8)]
"
- CHECK_TICK
- web += ""
- web += "
"
- web += ""
- web += " "
-
- if(safe_squares_revealed >= win_condition && game_status == MINESWEEPER_GAME_PLAYING)
- game_status = MINESWEEPER_GAME_WON
- if(rows < 10 || columns < 10) //If less than easy difficulty
- playsound(loc, 'sound/arcade/minesweeper_winfail.ogg', 50, FALSE, extrarange = -3)
- say("You cleared the board of all mines, but you picked too small of a board! Try again with at least a 9x9 board!")
- else
- playsound(loc, 'sound/arcade/minesweeper_win.ogg', 50, FALSE, extrarange = -3)
- say("You cleared the board of all mines! Congratulations!")
- if(CHECK_BITFIELD(obj_flags, EMAGGED))
- var/itemname
- switch(rand(1,3))
- if(1)
- itemname = "a syndicate bomb beacon"
- new /obj/item/sbeacondrop/bomb(loc)
- if(2)
- itemname = "a rocket launcher"
- new /obj/item/gun/ballistic/rocketlauncher/unrestricted(loc)
- new /obj/item/ammo_casing/caseless/rocket(loc)
- new /obj/item/ammo_casing/caseless/rocket(loc)
- new /obj/item/ammo_casing/caseless/rocket(loc)
- if(3)
- itemname = "two bags of c4"
- new /obj/item/storage/backpack/duffelbag/syndie/c4(loc)
- new /obj/item/storage/backpack/duffelbag/syndie/x4(loc)
- message_admins("[key_name_admin(user)] won emagged Minesweeper and got [itemname]!")
- visible_message("[src] dispenses [itemname]!", "You hear a chime and a clunk.")
- DISABLE_BITFIELD(obj_flags, EMAGGED)
- else
- var/dope_prizes = (area >= 480) ? 6 : (area >= 256) ? 4 : 2
- prizevend(user, dope_prizes)
-
- if(game_status == MINESWEEPER_GAME_WON)
- web += "[(rows < 10 || columns < 10) ? "You won, but your board was too small! Pick a bigger board next time!" : "Congratulations, you have won!"] Want to play again? Easy (9x9 board, 10 mines) Intermediate (16x16 board, 40 mines) Hard (16x30 board, 99 mines) Custom Return to Main Menu "
-
- if(game_status == MINESWEEPER_GAME_LOST)
- web += "You have lost! Try again? Easy (9x9 board, 10 mines) Intermediate (16x16 board, 40 mines) Hard (16x30 board, 99 mines) Custom Return to Main Menu "
-
- if(game_status == MINESWEEPER_GAME_PLAYING)
- web += "Return to Main Menu "
- web += "
"
- var/datum/asset/spritesheet/sheet = get_asset_datum(/datum/asset/spritesheet/simple/minesweeper)
- saved_web = sheet.css_tag()
- saved_web += web
- updateDialog()
- return
-
-/obj/machinery/computer/arcade/minesweeper/emag_act(mob/user)
- . = ..()
- if(CHECK_BITFIELD(obj_flags, EMAGGED))
- return
- desc = "An arcade machine that generates grids. It's clunking and sparking everywhere, almost as if threatening to explode at any moment!"
- do_sparks(5, 1, src)
- randomnumber = rand(1,255)
- randomcolour = rgb(randomnumber,randomnumber/2,randomnumber/3)
- ENABLE_BITFIELD(obj_flags, EMAGGED)
- if(game_status == MINESWEEPER_GAME_MAIN_MENU)
- to_chat(user, "An ominous tune plays from the arcade's speakers!")
- playsound(user, 'sound/arcade/minesweeper_emag1.ogg', 100, FALSE, extrarange = 3)
- else //Can't let you do that, star fox!
- to_chat(user, "The machine buzzes and sparks... the game has been reset!")
- playsound(user, 'sound/machines/buzz-sigh.ogg', 100, FALSE, extrarange = 3) //Loud buzz
- game_status = MINESWEEPER_GAME_MAIN_MENU
- return TRUE
-
-/obj/machinery/computer/arcade/minesweeper/proc/custom_generation(mob/user)
- playsound(loc, 'sound/arcade/minesweeper_menuselect.ogg', 50, FALSE, extrarange = -3) //Entered into the menu so ping sound
- var/new_rows = input(user, "How many rows do you want? (Minimum: 4, Maximum: 30)", "Minesweeper Rows") as null|num
- if(!new_rows || !user.canUseTopic(src, !hasSiliconAccessInArea(user)))
- return FALSE
- new_rows = clamp(new_rows + 1, 4, 20)
- playsound(loc, 'sound/arcade/minesweeper_menuselect.ogg', 50, FALSE, extrarange = -3)
- var/new_columns = input(user, "How many columns do you want? (Minimum: 4, Maximum: 50)", "Minesweeper Squares") as null|num
- if(!new_columns || !user.canUseTopic(src, !hasSiliconAccessInArea(user)))
- return FALSE
- new_columns = clamp(new_columns + 1, 4, 30)
- playsound(loc, 'sound/arcade/minesweeper_menuselect.ogg', 50, FALSE, extrarange = -3)
- var/grid_area = (new_rows - 1) * (new_columns - 1)
- var/lower_limit = round(grid_area*0.156)
- var/upper_limit = round(grid_area*0.85)
- var/new_mine_limit = input(user, "How many mines do you want? (Minimum: [lower_limit], Maximum: [upper_limit])", "Minesweeper Mines") as null|num
- if(!new_mine_limit || !user.canUseTopic(src, !hasSiliconAccessInArea(user)))
- return FALSE
- playsound(loc, 'sound/arcade/minesweeper_menuselect.ogg', 50, FALSE, extrarange = -3)
- rows = new_rows
- columns = new_columns
- mine_limit = clamp(new_mine_limit, lower_limit, upper_limit)
- return TRUE
-
-/obj/machinery/computer/arcade/minesweeper/proc/make_mines(var/reset_everything)
- if(mine_placed < mine_limit)
- for(var/y1=1;y1 0 && x3 > 0)
- y2 = y3
- x2 = x3
- if(table[y2][x2] == 1)
- for(y3=y2-1;y3= rows || y3 < 1)
- continue
- for(x3=x2-1;x3= columns || x3 < 1)
- continue
- if(table[y3][x3] == 0)
- table[y2][x2] += 1
- if(table[y2][x2] == 11)
- for(y3=y2-1;y3= rows || y3 < 1)
- continue
- for(x3=x2-1;x3= columns || x3 < 1)
- continue
- if(table[y3][x3] > 0 && table[y3][x3] < 10)
- table[y3][x3] += 10
- work_squares(y3, x3) //Refresh so we check everything we might be missing
-
-/obj/machinery/computer/arcade/minesweeper/proc/explode_EVERYTHING()
- var/mob/living/user = usr
- to_chat(user, "You feel a great sense of dread wash over you, as if you just unleashed armageddon upon yourself!")
- var/row_limit = rows-1
- var/column_limit = columns-1
- var/mine_limit_v2 = mine_limit
- if(rows > 21)
- row_limit = 20
- if(columns > 21)
- column_limit = 20
- if(mine_limit > (rows*columns) * 0.25)
- mine_limit_v2 = 24
- message_admins("[key_name_admin(user)] failed an emagged Minesweeper arcade and has unleashed an explosion armageddon of size [row_limit],[column_limit] around [ADMIN_LOOKUPFLW(user.loc)]!")
- if(mine_limit_v2 < 10)
- explosion(loc, 2, 5, 10, 15) //Thought you could survive by putting as few mines as possible, huh??
- else
- explosion(loc, 1, 3, rand(1,5), rand(1,10))
- var/list/targets = list()
- var/cur_y = y - round(row_limit * 0.5, 1)
- var/starting_row = 1
- if(cur_y < 1)
- starting_row -= cur_y - 1
- cur_y = 1
- var/start_x = x - round(column_limit * 0.5, 1)
- var/starting_column = 1
- if(start_x < 1)
- starting_column -= start_x - 1
- start_x = 1
- for(var/row in starting_row to length(table)) //translate the mines locations into actual turf coordinates.
- if(!locate(cur_y, start_x, z))
- break
- var/cur_x = start_x
- for(var/column in starting_column to length(table[row]))
- var/coord_value = table[row][column]
- if(coord_value == 10 || coord_value == 0) //there is a mine in here.
- var/turf/T = locate(cur_y, cur_x, z)
- if(!T)
- break
- targets += T
- cur_x++
- cur_y++
- var/num_explosions = 0
- for(var/T in shuffle(targets)) //Create a shitton of explosions in irl turfs if we lose, it will probably kill us
- addtimer(CALLBACK(GLOBAL_PROC, /proc/explosion, T, 0, rand(1,2),rand(1,5),rand(3,10), FALSE), 15 * ++num_explosions)
- if(num_explosions == mine_limit_v2)
- return
-
-#undef MINESWEEPERIMG
-#undef MINESWEEPER_GAME_MAIN_MENU
-#undef MINESWEEPER_GAME_PLAYING
-#undef MINESWEEPER_GAME_LOST
-#undef MINESWEEPER_GAME_WON
diff --git a/code/game/machinery/requests_console.dm b/code/game/machinery/requests_console.dm
index 5d1b30741b..d4807e377c 100644
--- a/code/game/machinery/requests_console.dm
+++ b/code/game/machinery/requests_console.dm
@@ -62,7 +62,7 @@ GLOBAL_LIST_EMPTY(allConsoles)
update_icon()
/obj/machinery/requests_console/update_icon_state()
- if(CHECK_BITFIELD(stat, NOPOWER))
+ if((stat & NOPOWER))
set_light(0)
else
set_light(1.4, 0.7, "#34D352")//green light
@@ -72,7 +72,7 @@ GLOBAL_LIST_EMPTY(allConsoles)
icon_state="req_comp_open"
else
icon_state="req_comp_rewired"
- else if(CHECK_BITFIELD(stat, NOPOWER))
+ else if((stat & NOPOWER))
if(icon_state != "req_comp_off")
icon_state = "req_comp_off"
else
diff --git a/code/game/machinery/telecomms/computers/logbrowser.dm b/code/game/machinery/telecomms/computers/logbrowser.dm
index ca04009e3b..c39c4667a6 100644
--- a/code/game/machinery/telecomms/computers/logbrowser.dm
+++ b/code/game/machinery/telecomms/computers/logbrowser.dm
@@ -1,5 +1,5 @@
/*
- The log console for viewing the entire telecomms
+ The log console for viewing the entire telecomms
network log
*/
@@ -15,7 +15,7 @@
var/network = "NULL" // the network to probe
var/notice = ""
- var/universal_translate = FALSE // set to TRUE(1) if it can translate nonhuman speech
+ var/universal_translate = FALSE // set to TRUE(1) if it can translate nonhuman speech
/obj/machinery/computer/telecomms/server/ui_interact(mob/user, datum/tgui/ui)
ui = SStgui.try_update_ui(user, src, ui)
@@ -53,7 +53,7 @@
if(!LAZYLEN(SelectedMachine.log_entries))
return data_out
-
+
for(var/datum/comm_log_entry/C in SelectedMachine.log_entries)
var/list/data = list()
data["name"] = C.name //name of the file
@@ -104,7 +104,7 @@
data["message"] = C.parameters["message"]
else
data["message"] = "(unintelligible)"
-
+
data_out["selected_logs"] += list(data)
return data_out
@@ -133,7 +133,7 @@
if(LAZYLEN(machinelist) > 0)
notice = "FAILED: Cannot probe when buffer full"
return
-
+
for(var/obj/machinery/telecomms/T in GLOB.telecomms_list) //telecomms just went global!
if(T.network == network)
LAZYADD(machinelist, T)
@@ -147,7 +147,7 @@
SelectedMachine = T
break
if("delete")
- if(!src.allowed(usr) && !CHECK_BITFIELD(obj_flags, EMAGGED))
+ if(!src.allowed(usr) && !(obj_flags & EMAGGED))
to_chat(usr, "ACCESS DENIED.")
return
@@ -156,7 +156,7 @@
return
var/datum/comm_log_entry/D = locate(params["value"])
if(!istype(D))
- notice = "NOTICE: Object not found"
+ notice = "NOTICE: Object not found"
return
notice = "Deleted entry: [D.name]"
LAZYREMOVE(SelectedMachine.log_entries, D)
diff --git a/code/game/machinery/telecomms/computers/message.dm b/code/game/machinery/telecomms/computers/message.dm
index a674bb6489..b4f4b495f8 100644
--- a/code/game/machinery/telecomms/computers/message.dm
+++ b/code/game/machinery/telecomms/computers/message.dm
@@ -94,9 +94,9 @@
if(istype(S) && S.hack_software)
data_out["canhack"] = TRUE
- data_out["hacking"] = (hacking || CHECK_BITFIELD(obj_flags, EMAGGED))
+ data_out["hacking"] = (hacking || (obj_flags & EMAGGED))
if(hacking)
- data_out["borg"] = ((isAI(user) || iscyborg(user)) && !CHECK_BITFIELD(obj_flags, EMAGGED)) //even borgs can't read emag
+ data_out["borg"] = ((isAI(user) || iscyborg(user)) && !(obj_flags & EMAGGED)) //even borgs can't read emag
return data_out
data_out["servers"] = list()
@@ -324,7 +324,7 @@
update_static_data(usr)
/obj/machinery/computer/message_monitor/attackby(obj/item/O, mob/living/user, params)
- if(O.tool_behaviour == TOOL_SCREWDRIVER && CHECK_BITFIELD(obj_flags, EMAGGED))
+ if(O.tool_behaviour == TOOL_SCREWDRIVER && (obj_flags & EMAGGED))
//Stops people from just unscrewing the monitor and putting it back to get the console working again.
//Why this though, you should make it emag to a board level. (i wont do it)
to_chat(user, "It is too hot to mess with!")
@@ -333,12 +333,12 @@
/obj/machinery/computer/message_monitor/emag_act(mob/user)
. = ..()
- if(CHECK_BITFIELD(obj_flags, EMAGGED))
+ if((obj_flags & EMAGGED))
return
if(isnull(linkedServer))
to_chat(user, "A no server error appears on the screen.")
return
- ENABLE_BITFIELD(obj_flags, EMAGGED)
+ obj_flags |= EMAGGED
spark_system.set_up(5, 0, src)
spark_system.start()
var/obj/item/paper/monitorkey/MK = new(loc, linkedServer)
@@ -366,7 +366,7 @@
message = ""
/obj/machinery/computer/message_monitor/proc/UnmagConsole()
- DISABLE_BITFIELD(obj_flags, EMAGGED)
+ obj_flags &= ~(EMAGGED)
message = ""
/obj/machinery/computer/message_monitor/proc/ResetMessage()
diff --git a/code/game/machinery/telecomms/telecomunications.dm b/code/game/machinery/telecomms/telecomunications.dm
index f75eef0b21..a49fb32538 100644
--- a/code/game/machinery/telecomms/telecomunications.dm
+++ b/code/game/machinery/telecomms/telecomunications.dm
@@ -119,7 +119,7 @@ GLOBAL_LIST_EMPTY(telecomms_list)
/obj/machinery/telecomms/proc/update_power()
if(toggled)
// if powered, on. if not powered, off. if too damaged, off
- if(CHECK_BITFIELD(stat, (BROKEN | NOPOWER | EMPED)))
+ if(stat &(BROKEN | NOPOWER | EMPED))
on = FALSE
else
on = TRUE
@@ -137,11 +137,11 @@ GLOBAL_LIST_EMPTY(telecomms_list)
/obj/machinery/telecomms/emp_act(severity)
. = ..()
- if(CHECK_BITFIELD(., EMP_PROTECT_SELF))
+ if((. & EMP_PROTECT_SELF))
return
if(prob(severity))
- if(!CHECK_BITFIELD(stat, EMPED))
- ENABLE_BITFIELD(stat, EMPED)
+ if(!(stat & EMPED))
+ stat |= EMPED
var/duration = severity * 35
spawn(rand(duration - 20, duration + 20)) // Takes a long time for the machines to reboot.
- DISABLE_BITFIELD(stat, EMPED)
+ stat &= ~(EMPED)
diff --git a/code/game/mecha/equipment/tools/medical_tools.dm b/code/game/mecha/equipment/tools/medical_tools.dm
index 1435f78718..756cee058c 100644
--- a/code/game/mecha/equipment/tools/medical_tools.dm
+++ b/code/game/mecha/equipment/tools/medical_tools.dm
@@ -276,7 +276,7 @@
/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/critfail()
..()
if(reagents)
- DISABLE_BITFIELD(reagents.reagents_holder_flags, NO_REACT)
+ reagents.reagents_holder_flags &= ~(NO_REACT)
/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/can_attach(obj/mecha/medical/M)
if(..())
diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm
index 53f64c57d2..96fd32401a 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -450,8 +450,8 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb
A.Remove(user)
if(item_flags & DROPDEL)
qdel(src)
- DISABLE_BITFIELD(item_flags, IN_INVENTORY)
- DISABLE_BITFIELD(item_flags, IN_STORAGE)
+ item_flags &= ~(IN_INVENTORY)
+ item_flags &= ~(IN_STORAGE)
SEND_SIGNAL(src, COMSIG_ITEM_DROPPED,user)
remove_outline()
// if(!silent)
@@ -529,8 +529,8 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb
if(item_action_slot_check(slot, user, A)) //some items only give their actions buttons when in a specific slot.
A.Grant(user)
item_flags |= IN_INVENTORY
- if(CHECK_BITFIELD(item_flags, IN_STORAGE)) // Left storage item but somehow has the bitfield active still.
- DISABLE_BITFIELD(item_flags, IN_STORAGE)
+ if((item_flags & IN_STORAGE)) // Left storage item but somehow has the bitfield active still.
+ item_flags &= ~(IN_STORAGE)
// if(!initial)
// if(equip_sound && (slot_flags & slot))
// playsound(src, equip_sound, EQUIP_SOUND_VOLUME, TRUE, ignore_walls = FALSE)
@@ -1054,7 +1054,7 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb
*/
/obj/item/proc/set_slowdown(new_slowdown)
slowdown = new_slowdown
- if(CHECK_BITFIELD(item_flags, IN_INVENTORY))
+ if((item_flags & IN_INVENTORY))
var/mob/living/L = loc
if(istype(L))
L.update_equipment_speed_mods()
diff --git a/code/game/objects/items/cigs_lighters.dm b/code/game/objects/items/cigs_lighters.dm
index 5e37e9d992..702cbd8d56 100644
--- a/code/game/objects/items/cigs_lighters.dm
+++ b/code/game/objects/items/cigs_lighters.dm
@@ -190,7 +190,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
qdel(src)
return
// allowing reagents to react after being lit
- DISABLE_BITFIELD(reagents.reagents_holder_flags, NO_REACT)
+ reagents.reagents_holder_flags &= ~(NO_REACT)
reagents.handle_reactions()
icon_state = icon_on
item_state = icon_on
@@ -762,7 +762,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
if(!screw)
screw = TRUE
to_chat(user, "You open the cap on [src].")
- ENABLE_BITFIELD(reagents.reagents_holder_flags, OPENCONTAINER)
+ reagents.reagents_holder_flags |= OPENCONTAINER
if(obj_flags & EMAGGED)
add_overlay("vapeopen_high")
else if(super)
@@ -772,7 +772,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
else
screw = FALSE
to_chat(user, "You close the cap on [src].")
- DISABLE_BITFIELD(reagents.reagents_holder_flags, OPENCONTAINER)
+ reagents.reagents_holder_flags &= ~(OPENCONTAINER)
cut_overlays()
if(O.tool_behaviour == TOOL_MULTITOOL)
@@ -822,7 +822,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
if(slot == SLOT_WEAR_MASK)
if(!screw)
to_chat(user, "You start puffing on the vape.")
- DISABLE_BITFIELD(reagents.reagents_holder_flags, NO_REACT)
+ reagents.reagents_holder_flags &= ~(NO_REACT)
START_PROCESSING(SSobj, src)
else //it will not start if the vape is opened.
to_chat(user, "You need to close the cap first!")
@@ -831,7 +831,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
. = ..()
var/mob/living/carbon/C = user
if(C.get_item_by_slot(SLOT_WEAR_MASK) == src)
- ENABLE_BITFIELD(reagents.reagents_holder_flags, NO_REACT)
+ reagents.reagents_holder_flags |= NO_REACT
STOP_PROCESSING(SSobj, src)
/obj/item/clothing/mask/vape/proc/hand_reagents()//had to rename to avoid duplicate error
diff --git a/code/game/objects/items/circuitboards/computer_circuitboards.dm b/code/game/objects/items/circuitboards/computer_circuitboards.dm
index afab49ac76..742a1fe3b0 100644
--- a/code/game/objects/items/circuitboards/computer_circuitboards.dm
+++ b/code/game/objects/items/circuitboards/computer_circuitboards.dm
@@ -259,11 +259,6 @@
build_path = /obj/machinery/computer/arcade/orion_trail
-/obj/item/circuitboard/computer/arcade/minesweeper
- name = "Minesweeper (Computer Board)"
- icon_state = "generic"
- build_path = /obj/machinery/computer/arcade/minesweeper
-
/obj/item/circuitboard/computer/holodeck// Not going to let people get this, but it's just here for future
name = "Holodeck Control (Computer Board)"
icon_state = "generic"
diff --git a/code/game/objects/items/circuitboards/machine_circuitboards.dm b/code/game/objects/items/circuitboards/machine_circuitboards.dm
index 6bf6e7d312..cb1d4aae88 100644
--- a/code/game/objects/items/circuitboards/machine_circuitboards.dm
+++ b/code/game/objects/items/circuitboards/machine_circuitboards.dm
@@ -1295,6 +1295,15 @@
/obj/item/stock_parts/manipulator = 1)
needs_anchored = FALSE
+/obj/item/circuitboard/machine/autoloom
+ name = "Autoloom (Machine Board)"
+ icon_state = "service"
+ build_path = /obj/machinery/autoloom
+ req_components = list(
+ /obj/item/stock_parts/matter_bin = 1,
+ /obj/item/stock_parts/manipulator = 1)
+ needs_anchored = FALSE
+
/obj/item/circuitboard/machine/seed_extractor
name = "Seed Extractor (Machine Board)"
icon_state = "service"
diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm
index aa48930d6c..5058060f54 100644
--- a/code/game/objects/items/crayons.dm
+++ b/code/game/objects/items/crayons.dm
@@ -72,6 +72,10 @@
var/datum/team/gang/gang //For marking territory.
var/gang_tag_delay = 30 //this is the delay for gang mode tag applications on anything that gang = true on.
+ var/precision_mode = FALSE
+ var/precision_x = 0
+ var/precision_y = 0
+
/obj/item/toy/crayon/proc/isValidSurface(surface)
return istype(surface, /turf/open/floor)
@@ -228,6 +232,12 @@
.["can_change_colour"] = can_change_colour
.["current_colour"] = paint_color
+ .["precision_mode"] = precision_mode
+ .["x"] = precision_x
+ .["y"] = precision_y
+ .["min_offset"] = -world.icon_size/2
+ .["max_offset"] = world.icon_size/2
+
/obj/item/toy/crayon/ui_act(action, list/params)
if(..())
return
@@ -256,6 +266,17 @@
. = TRUE
paint_mode = PAINT_NORMAL
drawtype = "a"
+ if("toggle_precision")
+ precision_mode = !precision_mode
+ . = TRUE
+ if("set_precision_x")
+ var/x = text2num(params["x"])
+ precision_x = x
+ . = TRUE
+ if("set_precision_y")
+ var/y = text2num(params["y"])
+ precision_y = y
+ . = TRUE
update_icon()
/obj/item/toy/crayon/proc/select_colour(mob/user)
@@ -400,8 +421,12 @@
if(PAINT_NORMAL)
var/obj/effect/decal/cleanable/crayon/C = new(target, paint_color, drawing, temp, graf_rot)
C.add_hiddenprint(user)
- C.pixel_x = clickx
- C.pixel_y = clicky
+ if(precision_mode)
+ C.pixel_x = clamp(precision_x, -(world.icon_size/2), world.icon_size/2)
+ C.pixel_y = clamp(precision_y, -(world.icon_size/2), world.icon_size/2)
+ else
+ C.pixel_x = clickx
+ C.pixel_y = clicky
affected_turfs += target
if(PAINT_LARGE_HORIZONTAL)
var/turf/left = locate(target.x-1,target.y,target.z)
diff --git a/code/game/objects/items/devices/dogborg_sleeper.dm b/code/game/objects/items/devices/dogborg_sleeper.dm
index 977029cca3..e7493efadc 100644
--- a/code/game/objects/items/devices/dogborg_sleeper.dm
+++ b/code/game/objects/items/devices/dogborg_sleeper.dm
@@ -326,7 +326,7 @@
cleaning_cycles--
cleaning = TRUE
for(var/mob/living/carbon/C in (touchable_items))
- if((C.status_flags & GODMODE) || !CHECK_BITFIELD(C.vore_flags, DIGESTABLE))
+ if((C.status_flags & GODMODE) || !(C.vore_flags & DIGESTABLE))
items_preserved += C
else
C.adjustBruteLoss(2)
@@ -335,7 +335,7 @@
var/atom/target = pick(touchable_items)
if(iscarbon(target)) //Handle the target being a mob
var/mob/living/carbon/T = target
- if(T.stat == DEAD && CHECK_BITFIELD(T.vore_flags, DIGESTABLE)) //Mob is now dead
+ if(T.stat == DEAD && (T.vore_flags & DIGESTABLE)) //Mob is now dead
message_admins("[key_name(hound)] has digested [key_name(T)] as a dogborg. ([hound ? "JMP" : "null"])")
to_chat(hound,"You feel your belly slowly churn around [T], breaking them down into a soft slurry to be used as power for your systems.")
to_chat(T,"You feel [hound]'s belly slowly churn around your form, breaking you down into a soft slurry to be used as power for [hound]'s systems.")
@@ -433,7 +433,7 @@
var/mob/living/silicon/robot/hound = get_host()
if(!hound || !istype(target) || !proximity || target.anchored)
return
- if (!CHECK_BITFIELD(target.vore_flags,DEVOURABLE))
+ if (!(target.vore_flags & DEVOURABLE))
to_chat(user, "The target registers an error code. Unable to insert into [src].")
return
if(patient)
diff --git a/code/game/objects/items/dualsaber.dm b/code/game/objects/items/dualsaber.dm
index eea189c3be..9a6a87bb51 100644
--- a/code/game/objects/items/dualsaber.dm
+++ b/code/game/objects/items/dualsaber.dm
@@ -23,7 +23,7 @@
max_integrity = 200
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 70)
resistance_flags = FIRE_PROOF
- wound_bonus = -110
+ wound_bonus = -40
bare_wound_bonus = 20
block_parry_data = /datum/block_parry_data/dual_esword
block_chance = 60
@@ -133,7 +133,7 @@
total_mass = initial(total_mass)
wielded = FALSE
hitsound = "swing_hit"
- slowdown_wielded -= slowdown_wielded
+ slowdown -= slowdown_wielded
STOP_PROCESSING(SSobj, src)
set_light(0)
RemoveElement(/datum/element/sword_point)
@@ -278,6 +278,7 @@
desc = "A supermassive weapon envisioned to cleave the very fabric of space and time itself in twain, the hypereutactic blade dynamically flash-forges a hypereutactic crystaline nanostructure capable of passing through most known forms of matter like a hot knife through butter."
force = 7
hitsound_on = 'sound/weapons/nebhit.ogg'
+ wound_bonus = -20
armour_penetration = 60
light_color = "#37FFF7"
rainbow_colors = list("#FF0000", "#FFFF00", "#00FF00", "#00FFFF", "#0000FF","#FF00FF", "#3399ff", "#ff9900", "#fb008b", "#9800ff", "#00ffa3", "#ccff00")
diff --git a/code/game/objects/items/shields.dm b/code/game/objects/items/shields.dm
index f1691e5eb9..8432a8b73e 100644
--- a/code/game/objects/items/shields.dm
+++ b/code/game/objects/items/shields.dm
@@ -174,11 +174,11 @@
/obj/item/shield/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return)
if(ismovable(object))
var/atom/movable/AM = object
- if(CHECK_BITFIELD(shield_flags, SHIELD_TRANSPARENT) && (AM.pass_flags & PASSGLASS))
+ if((shield_flags & SHIELD_TRANSPARENT) && (AM.pass_flags & PASSGLASS))
return BLOCK_NONE
- if(CHECK_BITFIELD(shield_flags, SHIELD_NO_RANGED) && (attack_type & ATTACK_TYPE_PROJECTILE))
+ if((shield_flags & SHIELD_NO_RANGED) && (attack_type & ATTACK_TYPE_PROJECTILE))
return BLOCK_NONE
- if(CHECK_BITFIELD(shield_flags, SHIELD_NO_MELEE) && (attack_type & ATTACK_TYPE_MELEE))
+ if((shield_flags & SHIELD_NO_MELEE) && (attack_type & ATTACK_TYPE_MELEE))
return BLOCK_NONE
if(attack_type & ATTACK_TYPE_THROWN)
final_block_chance += 30
@@ -249,15 +249,15 @@
if(attack_type & ATTACK_TYPE_MELEE)
var/obj/hittingthing = object
if(hittingthing.damtype == BURN)
- if(CHECK_BITFIELD(shield_flags, SHIELD_ENERGY_WEAK))
+ if((shield_flags & SHIELD_ENERGY_WEAK))
final_damage *= 2
- else if(CHECK_BITFIELD(shield_flags, SHIELD_ENERGY_STRONG))
+ else if((shield_flags & SHIELD_ENERGY_STRONG))
final_damage *= 0.5
if(hittingthing.damtype == BRUTE)
- if(CHECK_BITFIELD(shield_flags, SHIELD_KINETIC_WEAK))
+ if((shield_flags & SHIELD_KINETIC_WEAK))
final_damage *= 2
- else if(CHECK_BITFIELD(shield_flags, SHIELD_KINETIC_STRONG))
+ else if((shield_flags & SHIELD_KINETIC_STRONG))
final_damage *= 0.5
if(hittingthing.damtype == STAMINA || hittingthing.damtype == TOX || hittingthing.damtype == CLONE || hittingthing.damtype == BRAIN || hittingthing.damtype == OXY)
@@ -266,19 +266,19 @@
if(attack_type & ATTACK_TYPE_PROJECTILE)
var/obj/item/projectile/shootingthing = object
if(is_energy_reflectable_projectile(shootingthing))
- if(CHECK_BITFIELD(shield_flags, SHIELD_ENERGY_WEAK))
+ if((shield_flags & SHIELD_ENERGY_WEAK))
final_damage *= 2
- else if(CHECK_BITFIELD(shield_flags, SHIELD_ENERGY_STRONG))
+ else if((shield_flags & SHIELD_ENERGY_STRONG))
final_damage *= 0.5
if(!is_energy_reflectable_projectile(object))
- if(CHECK_BITFIELD(shield_flags, SHIELD_KINETIC_WEAK))
+ if((shield_flags & SHIELD_KINETIC_WEAK))
final_damage *= 2
- else if(CHECK_BITFIELD(shield_flags, SHIELD_KINETIC_STRONG))
+ else if((shield_flags & SHIELD_KINETIC_STRONG))
final_damage *= 0.5
if(shootingthing.damage_type == STAMINA)
- if(CHECK_BITFIELD(shield_flags, SHIELD_DISABLER_DISRUPTED))
+ if((shield_flags & SHIELD_DISABLER_DISRUPTED))
final_damage *= 3 //disablers melt these kinds of shields. Really meant more for holoshields.
else
final_damage = 0
diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm
index 8b897cb6e5..df439e98f1 100644
--- a/code/game/objects/items/storage/boxes.dm
+++ b/code/game/objects/items/storage/boxes.dm
@@ -1290,9 +1290,9 @@
var/toxic_risk = min(round(spess_current_year - expiration_date * 0.01), 1)
for(var/obj/item/reagent_containers/food/snacks/S in contents)
if(prob(gross_risk))
- ENABLE_BITFIELD(S.foodtype, GROSS)
+ S.foodtype |= GROSS
if(prob(toxic_risk))
- ENABLE_BITFIELD(S.foodtype, TOXIC)
+ S.foodtype |= TOXIC
/obj/item/storage/box/mre/menu1
name = "\improper Nanotrasen MRE Ration Kit Menu 1"
diff --git a/code/game/objects/items/storage/toolbox.dm b/code/game/objects/items/storage/toolbox.dm
index 56cf50993b..869711e5b2 100644
--- a/code/game/objects/items/storage/toolbox.dm
+++ b/code/game/objects/items/storage/toolbox.dm
@@ -370,7 +370,7 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons)
desc = replacetext(desc, "Danger", "Bouncy")
desc = replacetext(desc, "robust", "safe")
desc = replacetext(desc, "heavier", "bouncier")
- DISABLE_BITFIELD(flags_1, CONDUCT_1)
+ flags_1 &= ~(CONDUCT_1)
custom_materials = null
damtype = STAMINA
force += 3 //to compensate the higher stamina K.O. threshold compared to actual health.
diff --git a/code/game/objects/items/tanks/tanks.dm b/code/game/objects/items/tanks/tanks.dm
index 01da046809..b77e4a8ba0 100644
--- a/code/game/objects/items/tanks/tanks.dm
+++ b/code/game/objects/items/tanks/tanks.dm
@@ -48,7 +48,7 @@
var/obj/item/clothing/mask/M = check
if(M.mask_adjusted)
M.adjustmask(H)
- if(CHECK_BITFIELD(check.clothing_flags, ALLOWINTERNALS))
+ if((check.clothing_flags & ALLOWINTERNALS))
internals = TRUE
if(!internals)
diff --git a/code/game/objects/items/tools/weldingtool.dm b/code/game/objects/items/tools/weldingtool.dm
index 13c3c100b5..7688d2d342 100644
--- a/code/game/objects/items/tools/weldingtool.dm
+++ b/code/game/objects/items/tools/weldingtool.dm
@@ -291,10 +291,10 @@
status = !status
if(status)
to_chat(user, "You resecure [src] and close the fuel tank.")
- DISABLE_BITFIELD(reagents.reagents_holder_flags, OPENCONTAINER)
+ reagents.reagents_holder_flags &= ~(OPENCONTAINER)
else
to_chat(user, "[src] can now be attached, modified, and refuelled.")
- ENABLE_BITFIELD(reagents.reagents_holder_flags, OPENCONTAINER)
+ reagents.reagents_holder_flags |= OPENCONTAINER
add_fingerprint(user)
/obj/item/weldingtool/proc/flamethrower_rods(obj/item/I, mob/user)
diff --git a/code/game/objects/structures/flora.dm b/code/game/objects/structures/flora.dm
index b587e57c3a..356ccffef3 100644
--- a/code/game/objects/structures/flora.dm
+++ b/code/game/objects/structures/flora.dm
@@ -58,6 +58,7 @@
desc = "A wondrous decorated Christmas tree."
icon_state = "pine_c"
icon_states = null
+ resistance_flags = INDESTRUCTIBLE //Sorry grinch, not this time
/obj/structure/flora/tree/pine/xmas/presents
icon_state = "pinepresents"
diff --git a/code/game/objects/structures/ghost_role_spawners.dm b/code/game/objects/structures/ghost_role_spawners.dm
index 40af75002f..be92782c74 100644
--- a/code/game/objects/structures/ghost_role_spawners.dm
+++ b/code/game/objects/structures/ghost_role_spawners.dm
@@ -800,6 +800,13 @@
/datum/outfit/ghostcafe/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
..()
+ if (isplasmaman(H))
+ head = /obj/item/clothing/head/helmet/space/plasmaman
+ uniform = /obj/item/clothing/under/plasmaman
+ l_hand= /obj/item/tank/internals/plasmaman/belt/full
+ mask = /obj/item/clothing/mask/breath
+ return
+
var/suited = !preference_source || preference_source.prefs.jumpsuit_style == PREF_SUIT
if (CONFIG_GET(flag/grey_assistants))
uniform = suited ? /obj/item/clothing/under/color/grey : /obj/item/clothing/under/color/jumpskirt/grey
@@ -809,6 +816,10 @@
else
uniform = suited ? /obj/item/clothing/under/color/random : /obj/item/clothing/under/color/jumpskirt/random
+/datum/outfit/ghostcafe/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
+ H.internal = H.get_item_for_held_index(1)
+ H.update_internals_hud_icon(1)
+
/obj/item/storage/box/syndie_kit/chameleon/ghostcafe
name = "ghost cafe costuming kit"
desc = "Look just the way you did in life - or better!"
diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm
index 4980981574..6a588a61cd 100644
--- a/code/game/objects/structures/morgue.dm
+++ b/code/game/objects/structures/morgue.dm
@@ -247,7 +247,13 @@ GLOBAL_LIST_EMPTY(crematoriums)
locked = TRUE
update_icon()
-
+ for(var/mob/living/simple_animal/jacq/J in conts)
+ visible_message("[src] cackles, \"You'll nae get rid a me that easily!\"")
+ playsound(loc, 'sound/spookoween/ahaha.ogg', 100, 0.25)
+ J.poof()
+ locked = FALSE
+ update_icon()
+ return
for(var/mob/living/M in conts)
if (M.stat != DEAD)
M.emote("scream")
diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm
index d949158850..18ecbc21df 100755
--- a/code/game/turfs/turf.dm
+++ b/code/game/turfs/turf.dm
@@ -512,7 +512,7 @@ GLOBAL_LIST_EMPTY(station_turfs)
/turf/shove_act(mob/living/target, mob/living/user, pre_act = FALSE)
var/list/possibilities
for(var/obj/O in contents)
- if(CHECK_BITFIELD(O.obj_flags, SHOVABLE_ONTO))
+ if((O.obj_flags & SHOVABLE_ONTO))
LAZYADD(possibilities, O)
else if(!O.CanPass(target, src))
return FALSE
diff --git a/code/modules/admin/verbs/SDQL2/SDQL_2.dm b/code/modules/admin/verbs/SDQL2/SDQL_2.dm
index f2c10ecc1c..498355f7c3 100644
--- a/code/modules/admin/verbs/SDQL2/SDQL_2.dm
+++ b/code/modules/admin/verbs/SDQL2/SDQL_2.dm
@@ -262,7 +262,7 @@
selectors_used |= query.where_switched
combined_refs |= query.select_refs
running -= query
- if(!CHECK_BITFIELD(query.options, SDQL2_OPTION_DO_NOT_AUTOGC))
+ if(!(query.options & SDQL2_OPTION_DO_NOT_AUTOGC))
QDEL_IN(query, 50)
else
if(usr)
@@ -442,19 +442,19 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/SDQL2_VV_all, new(null
if("select")
switch(value)
if("force_nulls")
- DISABLE_BITFIELD(options, SDQL2_OPTION_SELECT_OUTPUT_SKIP_NULLS)
+ options &= ~(SDQL2_OPTION_SELECT_OUTPUT_SKIP_NULLS)
if("proccall")
switch(value)
if("blocking")
- ENABLE_BITFIELD(options, SDQL2_OPTION_BLOCKING_CALLS)
+ options |= SDQL2_OPTION_BLOCKING_CALLS
if("priority")
switch(value)
if("high")
- ENABLE_BITFIELD(options, SDQL2_OPTION_HIGH_PRIORITY)
+ options |= SDQL2_OPTION_HIGH_PRIORITY
if("autogc")
switch(value)
if("keep_alive")
- ENABLE_BITFIELD(options, SDQL2_OPTION_DO_NOT_AUTOGC)
+ options |= SDQL2_OPTION_DO_NOT_AUTOGC
/datum/SDQL2_query/proc/ARun()
INVOKE_ASYNC(src, .proc/Run)
diff --git a/code/modules/antagonists/traitor/classes/subterfuge.dm b/code/modules/antagonists/traitor/classes/subterfuge.dm
index 54f07eb23c..6c4bd26afb 100644
--- a/code/modules/antagonists/traitor/classes/subterfuge.dm
+++ b/code/modules/antagonists/traitor/classes/subterfuge.dm
@@ -9,7 +9,7 @@
var/datum/game_mode/dynamic/mode
if(istype(SSticker.mode,/datum/game_mode/dynamic))
mode = SSticker.mode
- assassin_prob = max(0,mode.threat_level-40)
+ assassin_prob = max(0,mode.threat_level-20)
if(prob(assassin_prob))
var/datum/objective/assassinate/once/kill_objective = new
kill_objective.owner = T.owner
diff --git a/code/modules/arousal/arousal.dm b/code/modules/arousal/arousal.dm
index 36da6c73ba..a3adf0d25b 100644
--- a/code/modules/arousal/arousal.dm
+++ b/code/modules/arousal/arousal.dm
@@ -55,7 +55,7 @@
return genit_list
/obj/item/organ/genital/proc/climaxable(mob/living/carbon/human/H, silent = FALSE) //returns the fluid source (ergo reagents holder) if found.
- if(CHECK_BITFIELD(genital_flags, GENITAL_FUID_PRODUCTION))
+ if((genital_flags & GENITAL_FUID_PRODUCTION))
. = reagents
else
if(linked_organ)
@@ -124,7 +124,7 @@
var/list/worn_stuff = get_equipped_items()
for(var/obj/item/organ/genital/G in internal_organs)
- if(CHECK_BITFIELD(G.genital_flags, CAN_CLIMAX_WITH) && G.is_exposed(worn_stuff)) //filter out what you can't masturbate with
+ if((G.genital_flags & CAN_CLIMAX_WITH) && G.is_exposed(worn_stuff)) //filter out what you can't masturbate with
LAZYADD(genitals_list, G)
if(LAZYLEN(genitals_list))
var/obj/item/organ/genital/ret_organ = input(src, "with what?", "Climax", null) as null|obj in genitals_list
@@ -212,7 +212,7 @@
if(forced_climax) //Something forced us to cum, this is not a masturbation thing and does not progress to the other checks
log_message("was forced to climax by [cause]",LOG_EMOTE)
for(var/obj/item/organ/genital/G in internal_organs)
- if(!CHECK_BITFIELD(G.genital_flags, CAN_CLIMAX_WITH)) //Skip things like wombs and testicles
+ if(!(G.genital_flags & CAN_CLIMAX_WITH)) //Skip things like wombs and testicles
continue
mob_climax_outside(G, mb_time = 0) //removed climax timer for sudden, forced orgasms
//Now all genitals that could climax, have.
diff --git a/code/modules/arousal/genitals.dm b/code/modules/arousal/genitals.dm
index 313f108b0f..b7e90e5b84 100644
--- a/code/modules/arousal/genitals.dm
+++ b/code/modules/arousal/genitals.dm
@@ -112,7 +112,7 @@
var/list/genital_list = list()
for(var/obj/item/organ/genital/G in internal_organs)
- if(!CHECK_BITFIELD(G.genital_flags, GENITAL_INTERNAL))
+ if(!(G.genital_flags & GENITAL_INTERNAL))
genital_list += G
if(!genital_list.len) //There is nothing to expose
return
diff --git a/code/modules/arousal/organs/breasts.dm b/code/modules/arousal/organs/breasts.dm
index e37224e401..b9129e28a1 100644
--- a/code/modules/arousal/organs/breasts.dm
+++ b/code/modules/arousal/organs/breasts.dm
@@ -48,7 +48,7 @@
else
desc += " You estimate that they're [uppertext(size)]-cups."
- if(CHECK_BITFIELD(genital_flags, GENITAL_FUID_PRODUCTION) && aroused_state)
+ if((genital_flags & GENITAL_FUID_PRODUCTION) && aroused_state)
var/datum/reagent/R = GLOB.chemical_reagents_list[fluid_id]
if(R)
desc += " They're leaking [lowertext(R.name)]."
@@ -115,7 +115,7 @@
size = D.features["breasts_size"]
shape = D.features["breasts_shape"]
if(!D.features["breasts_producing"])
- DISABLE_BITFIELD(genital_flags, GENITAL_FUID_PRODUCTION|CAN_CLIMAX_WITH|CAN_MASTURBATE_WITH)
+ genital_flags &= ~ (GENITAL_FUID_PRODUCTION|CAN_CLIMAX_WITH|CAN_MASTURBATE_WITH)
if(!isnum(size))
cached_size = breast_values[size]
else
diff --git a/code/modules/asset_cache/asset_list_items.dm b/code/modules/asset_cache/asset_list_items.dm
index 0af024985e..2d680fe212 100644
--- a/code/modules/asset_cache/asset_list_items.dm
+++ b/code/modules/asset_cache/asset_list_items.dm
@@ -273,24 +273,6 @@
"frenching" = 'icons/UI_Icons/Achievements/Misc/frenchingthebubble.png'
)
-/datum/asset/spritesheet/simple/minesweeper
- name = "minesweeper"
- assets = list(
- "1" = 'icons/UI_Icons/minesweeper_tiles/one.png',
- "2" = 'icons/UI_Icons/minesweeper_tiles/two.png',
- "3" = 'icons/UI_Icons/minesweeper_tiles/three.png',
- "4" = 'icons/UI_Icons/minesweeper_tiles/four.png',
- "5" = 'icons/UI_Icons/minesweeper_tiles/five.png',
- "6" = 'icons/UI_Icons/minesweeper_tiles/six.png',
- "7" = 'icons/UI_Icons/minesweeper_tiles/seven.png',
- "8" = 'icons/UI_Icons/minesweeper_tiles/eight.png',
- "empty" = 'icons/UI_Icons/minesweeper_tiles/empty.png',
- "flag" = 'icons/UI_Icons/minesweeper_tiles/flag.png',
- "hidden" = 'icons/UI_Icons/minesweeper_tiles/hidden.png',
- "mine" = 'icons/UI_Icons/minesweeper_tiles/mine.png',
- "minehit" = 'icons/UI_Icons/minesweeper_tiles/minehit.png'
- )
-
/datum/asset/spritesheet/simple/pills
name = "pills"
assets = list(
diff --git a/code/modules/cargo/packs/misc.dm b/code/modules/cargo/packs/misc.dm
index 91663dbe0f..990e32df67 100644
--- a/code/modules/cargo/packs/misc.dm
+++ b/code/modules/cargo/packs/misc.dm
@@ -171,11 +171,11 @@
desc = "Start up your own grand casino with this crate filled with slot machine and arcade boards!"
cost = 3000
contains = list(/obj/item/circuitboard/computer/arcade/battle,
+ /obj/item/circuitboard/computer/arcade/battle,
/obj/item/circuitboard/computer/arcade/battle,
/obj/item/circuitboard/computer/arcade/orion_trail,
/obj/item/circuitboard/computer/arcade/orion_trail,
- /obj/item/circuitboard/computer/arcade/minesweeper,
- /obj/item/circuitboard/computer/arcade/minesweeper,
+ /obj/item/circuitboard/computer/arcade/orion_trail,
/obj/item/circuitboard/computer/slot_machine,
/obj/item/circuitboard/computer/slot_machine,
/obj/item/circuitboard/computer/slot_machine,
diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm
index 96ffd09af8..510ac9ff28 100644
--- a/code/modules/client/preferences_savefile.dm
+++ b/code/modules/client/preferences_savefile.dm
@@ -126,29 +126,29 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
var/list/json_from_file = json_decode(file2text(vr_path))
if(json_from_file)
if(json_from_file["digestable"])
- ENABLE_BITFIELD(vore_flags,DIGESTABLE)
+ vore_flags |= DIGESTABLE
if(json_from_file["devourable"])
- ENABLE_BITFIELD(vore_flags,DEVOURABLE)
+ vore_flags |= DEVOURABLE
if(json_from_file["feeding"])
- ENABLE_BITFIELD(vore_flags,FEEDING)
+ vore_flags |= FEEDING
if(json_from_file["lickable"])
- ENABLE_BITFIELD(vore_flags,LICKABLE)
+ vore_flags |= LICKABLE
belly_prefs = json_from_file["belly_prefs"]
vore_taste = json_from_file["vore_taste"]
for(var/V in all_quirks) // quirk migration
switch(V)
if("Acute hepatic pharmacokinesis")
- DISABLE_BITFIELD(cit_toggles, PENIS_ENLARGEMENT)
- DISABLE_BITFIELD(cit_toggles, BREAST_ENLARGEMENT)
- ENABLE_BITFIELD(cit_toggles,FORCED_FEM)
- ENABLE_BITFIELD(cit_toggles,FORCED_MASC)
+ cit_toggles &= ~(PENIS_ENLARGEMENT)
+ cit_toggles &= ~(BREAST_ENLARGEMENT)
+ cit_toggles |= FORCED_FEM
+ cit_toggles |= FORCED_MASC
all_quirks -= V
if("Crocin Immunity")
- ENABLE_BITFIELD(cit_toggles,NO_APHRO)
+ cit_toggles |= NO_APHRO
all_quirks -= V
if("Buns of Steel")
- ENABLE_BITFIELD(cit_toggles,NO_ASS_SLAP)
+ cit_toggles |= NO_ASS_SLAP
all_quirks -= V
if(features["meat_type"] == "Inesct")
@@ -178,13 +178,13 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
S["feeding"] >> feeding
S["lickable"] >> lickable
if(digestable)
- ENABLE_BITFIELD(vore_flags,DIGESTABLE)
+ vore_flags |= DIGESTABLE
if(devourable)
- ENABLE_BITFIELD(vore_flags,DEVOURABLE)
+ vore_flags |= DEVOURABLE
if(feeding)
- ENABLE_BITFIELD(vore_flags,FEEDING)
+ vore_flags |= FEEDING
if(lickable)
- ENABLE_BITFIELD(vore_flags,LICKABLE)
+ vore_flags |= LICKABLE
if(current_version < 30)
switch(features["taur"])
diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm
index 56ddb5f5f1..492768a8e0 100644
--- a/code/modules/clothing/clothing.dm
+++ b/code/modules/clothing/clothing.dm
@@ -67,7 +67,7 @@
/obj/item/clothing/Initialize()
. = ..()
- if(CHECK_BITFIELD(clothing_flags, VOICEBOX_TOGGLABLE))
+ if((clothing_flags & VOICEBOX_TOGGLABLE))
actions_types += /datum/action/item_action/toggle_voice_box
if(ispath(pocket_storage_component_path))
LoadComponent(pocket_storage_component_path)
diff --git a/code/modules/clothing/masks/_masks.dm b/code/modules/clothing/masks/_masks.dm
index c4063108db..ef7c6a1926 100644
--- a/code/modules/clothing/masks/_masks.dm
+++ b/code/modules/clothing/masks/_masks.dm
@@ -11,9 +11,9 @@
var/datum/beepsky_fashion/beepsky_fashion //the associated datum for applying this to a secbot
/obj/item/clothing/mask/attack_self(mob/user)
- if(CHECK_BITFIELD(clothing_flags, VOICEBOX_TOGGLABLE))
- TOGGLE_BITFIELD(clothing_flags, VOICEBOX_DISABLED)
- var/status = !CHECK_BITFIELD(clothing_flags, VOICEBOX_DISABLED)
+ if((clothing_flags & VOICEBOX_TOGGLABLE))
+ (clothing_flags ^= VOICEBOX_DISABLED)
+ var/status = !(clothing_flags & VOICEBOX_DISABLED)
to_chat(user, "You turn the voice box in [src] [status ? "on" : "off"].")
/obj/item/clothing/mask/equipped(mob/M, slot)
diff --git a/code/modules/clothing/masks/miscellaneous.dm b/code/modules/clothing/masks/miscellaneous.dm
index 88fbc98280..e6a0425920 100644
--- a/code/modules/clothing/masks/miscellaneous.dm
+++ b/code/modules/clothing/masks/miscellaneous.dm
@@ -124,7 +124,7 @@
modifies_speech = TRUE
/obj/item/clothing/mask/pig/handle_speech(datum/source, list/speech_args)
- if(!CHECK_BITFIELD(clothing_flags, VOICEBOX_DISABLED))
+ if(!(clothing_flags & VOICEBOX_DISABLED))
speech_args[SPEECH_MESSAGE] = pick("Oink!","Squeeeeeeee!","Oink Oink!")
/obj/item/clothing/mask/pig/cursed //needs to be different otherwise you could turn the speedmodification off and on
@@ -150,7 +150,7 @@
modifies_speech = TRUE
/obj/item/clothing/mask/frog/handle_speech(datum/source, list/speech_args) //whenever you speak
- if(!CHECK_BITFIELD(clothing_flags, VOICEBOX_DISABLED))
+ if(!(clothing_flags & VOICEBOX_DISABLED))
if(prob(5)) //sometimes, the angry spirit finds others words to speak.
speech_args[SPEECH_MESSAGE] = pick("HUUUUU!!","SMOOOOOKIN'!!","Hello my baby, hello my honey, hello my rag-time gal.", "Feels bad, man.", "GIT DIS GUY OFF ME!!" ,"SOMEBODY STOP ME!!", "NORMIES, GET OUT!!")
else
@@ -180,7 +180,7 @@
modifies_speech = TRUE
/obj/item/clothing/mask/cowmask/handle_speech(datum/source, list/speech_args)
- if(!CHECK_BITFIELD(clothing_flags, VOICEBOX_DISABLED))
+ if(!(clothing_flags & VOICEBOX_DISABLED))
speech_args[SPEECH_MESSAGE] = pick("Moooooooo!","Moo!","Moooo!")
@@ -205,7 +205,7 @@
clothing_flags = VOICEBOX_TOGGLABLE
/obj/item/clothing/mask/horsehead/handle_speech(datum/source, list/speech_args)
- if(!CHECK_BITFIELD(clothing_flags, VOICEBOX_DISABLED))
+ if(!(clothing_flags & VOICEBOX_DISABLED))
speech_args[SPEECH_MESSAGE] = pick("NEEIIGGGHHHH!", "NEEEIIIIGHH!", "NEIIIGGHH!", "HAAWWWWW!", "HAAAWWW!")
diff --git a/code/modules/food_and_drinks/drinks/drinks.dm b/code/modules/food_and_drinks/drinks/drinks.dm
index 6b8de787f0..0370c087d9 100644
--- a/code/modules/food_and_drinks/drinks/drinks.dm
+++ b/code/modules/food_and_drinks/drinks/drinks.dm
@@ -500,7 +500,7 @@
/obj/item/reagent_containers/food/drinks/soda_cans/attack_self(mob/user)
if(!is_drainable())
to_chat(user, "You pull back the tab of \the [src] with a satisfying pop.") //Ahhhhhhhh
- ENABLE_BITFIELD(reagents.reagents_holder_flags, OPENCONTAINER)
+ reagents.reagents_holder_flags |= OPENCONTAINER
playsound(src, "can_open", 50, 1)
spillable = TRUE
return
diff --git a/code/modules/holiday/halloween/bartholomew.dm b/code/modules/holiday/halloween/bartholomew.dm
index 31cfb1f26a..12a0858b8d 100644
--- a/code/modules/holiday/halloween/bartholomew.dm
+++ b/code/modules/holiday/halloween/bartholomew.dm
@@ -8,14 +8,9 @@
anchored = TRUE
var/items_list = list()
speech_span = "spooky"
+ resistance_flags = INDESTRUCTIBLE
var/active = TRUE
-/obj/item/barthpot/Destroy()
- var/obj/item/barthpot/n = new src(loc)
- n.items_list = items_list
- ..()
-
-
/obj/item/barthpot/attackby(obj/item/I, mob/user, params)
if(!active)
say("Meow!")
diff --git a/code/modules/holiday/halloween/jacqueen.dm b/code/modules/holiday/halloween/jacqueen.dm
index ed7453ad3e..4ec18e7f6c 100644
--- a/code/modules/holiday/halloween/jacqueen.dm
+++ b/code/modules/holiday/halloween/jacqueen.dm
@@ -65,6 +65,10 @@
cached_z = z
poof()
+/mob/living/simple_animal/jacq/ComponentInitialize() //she just wants to bring halloween to the station
+ . = ..()
+ AddComponent(/datum/component/stationloving)
+
/mob/living/simple_animal/jacq/BiologicalLife(seconds, times_fired)
if(!(. = ..()))
return
@@ -469,9 +473,9 @@
/mob/living/simple_animal/jacq/update_mobility()
. = ..()
if(busy)
- DISABLE_BITFIELD(., MOBILITY_MOVE)
+ . &= ~(MOBILITY_MOVE)
else
- ENABLE_BITFIELD(., MOBILITY_MOVE)
+ . |= MOBILITY_MOVE
mobility_flags = .
diff --git a/code/modules/holodeck/holo_effect.dm b/code/modules/holodeck/holo_effect.dm
index c37ccf657b..ffff8e190e 100644
--- a/code/modules/holodeck/holo_effect.dm
+++ b/code/modules/holodeck/holo_effect.dm
@@ -78,7 +78,7 @@
// these vars are not really standardized but all would theoretically create stuff on death
for(var/v in list("butcher_results","corpse","weapon1","weapon2","blood_volume") & mob.vars)
mob.vars[v] = null
- ENABLE_BITFIELD(mob.flags_1, HOLOGRAM_1)
+ mob.flags_1 |= HOLOGRAM_1
if(isliving(mob))
var/mob/living/L = mob
L.vore_flags = 0
diff --git a/code/modules/hydroponics/fermenting_barrel.dm b/code/modules/hydroponics/fermenting_barrel.dm
index 3d6b90eb2d..39b0bfdfde 100644
--- a/code/modules/hydroponics/fermenting_barrel.dm
+++ b/code/modules/hydroponics/fermenting_barrel.dm
@@ -59,12 +59,12 @@
/obj/structure/fermenting_barrel/on_attack_hand(mob/user, act_intent = user.a_intent, unarmed_attack_flags)
open = !open
if(open)
- DISABLE_BITFIELD(reagents.reagents_holder_flags, DRAINABLE)
- ENABLE_BITFIELD(reagents.reagents_holder_flags, REFILLABLE)
+ reagents.reagents_holder_flags &= ~(DRAINABLE)
+ reagents.reagents_holder_flags |= REFILLABLE
to_chat(user, "You open [src], letting you fill it.")
else
- DISABLE_BITFIELD(reagents.reagents_holder_flags, REFILLABLE)
- ENABLE_BITFIELD(reagents.reagents_holder_flags, DRAINABLE)
+ reagents.reagents_holder_flags &= ~(REFILLABLE)
+ reagents.reagents_holder_flags |= DRAINABLE
to_chat(user, "You close [src], letting you draw from its tap.")
update_icon()
@@ -96,12 +96,12 @@
/obj/structure/custom_keg/on_attack_hand(mob/user, act_intent = user.a_intent, unarmed_attack_flags)
open = !open
if(open)
- DISABLE_BITFIELD(reagents.reagents_holder_flags, DRAINABLE)
- ENABLE_BITFIELD(reagents.reagents_holder_flags, REFILLABLE)
+ reagents.reagents_holder_flags &= ~(DRAINABLE)
+ reagents.reagents_holder_flags |= REFILLABLE
to_chat(user, "You open [src], letting you fill it.")
else
- DISABLE_BITFIELD(reagents.reagents_holder_flags, REFILLABLE)
- ENABLE_BITFIELD(reagents.reagents_holder_flags, DRAINABLE)
+ reagents.reagents_holder_flags &= ~(REFILLABLE)
+ reagents.reagents_holder_flags |= DRAINABLE
to_chat(user, "You close [src], letting you draw from its tap.")
update_icon()
diff --git a/code/modules/hydroponics/grown/misc.dm b/code/modules/hydroponics/grown/misc.dm
index 733d973832..e7298e67be 100644
--- a/code/modules/hydroponics/grown/misc.dm
+++ b/code/modules/hydroponics/grown/misc.dm
@@ -365,7 +365,7 @@
opened = TRUE
spillable = !screwdrivered
reagent_flags = OPENCONTAINER
- ENABLE_BITFIELD(reagents.reagents_holder_flags, OPENCONTAINER)
+ reagents.reagents_holder_flags |= OPENCONTAINER
icon_state = screwdrivered ? "coconut_carved" : "coconut_chopped"
desc = "A coconut. [screwdrivered ? "This one's got a hole in it" : "This one's sliced open, with all its delicious contents for your eyes to savour"]."
playsound(user, W.hitsound, 50, 1, -1)
diff --git a/code/modules/instruments/instrument_data/_instrument_data.dm b/code/modules/instruments/instrument_data/_instrument_data.dm
index 447bcdffb1..5d937f304f 100644
--- a/code/modules/instruments/instrument_data/_instrument_data.dm
+++ b/code/modules/instruments/instrument_data/_instrument_data.dm
@@ -55,14 +55,14 @@
id = "[type]"
/datum/instrument/proc/Initialize()
- if(CHECK_BITFIELD(instrument_flags, INSTRUMENT_LEGACY | INSTRUMENT_DO_NOT_AUTOSAMPLE))
+ if(instrument_flags & (INSTRUMENT_LEGACY | INSTRUMENT_DO_NOT_AUTOSAMPLE))
return
calculate_samples()
/datum/instrument/proc/ready()
- if(CHECK_BITFIELD(instrument_flags, INSTRUMENT_LEGACY))
+ if((instrument_flags & INSTRUMENT_LEGACY))
return legacy_instrument_path && legacy_instrument_ext
- else if(CHECK_BITFIELD(instrument_flags, INSTRUMENT_DO_NOT_AUTOSAMPLE))
+ else if((instrument_flags & INSTRUMENT_DO_NOT_AUTOSAMPLE))
return length(samples)
return (length(samples) >= 128)
diff --git a/code/modules/integrated_electronics/subtypes/reagents.dm b/code/modules/integrated_electronics/subtypes/reagents.dm
index f69fa08aaf..de6ad729e9 100644
--- a/code/modules/integrated_electronics/subtypes/reagents.dm
+++ b/code/modules/integrated_electronics/subtypes/reagents.dm
@@ -77,7 +77,7 @@
/obj/item/integrated_circuit/reagent/injector/Initialize()
. = ..()
- ENABLE_BITFIELD(reagents.reagents_holder_flags, OPENCONTAINER)
+ reagents.reagents_holder_flags |= OPENCONTAINER
/obj/item/integrated_circuit/reagent/injector/on_reagent_change(changetype)
push_vol()
@@ -273,7 +273,7 @@
/obj/item/integrated_circuit/reagent/storage/Initialize()
. = ..()
- ENABLE_BITFIELD(reagents.reagents_holder_flags, OPENCONTAINER)
+ reagents.reagents_holder_flags |= OPENCONTAINER
/obj/item/integrated_circuit/reagent/storage/do_work()
set_pin_data(IC_OUTPUT, 2, WEAKREF(src))
@@ -303,7 +303,7 @@
/obj/item/integrated_circuit/reagent/storage/cryo/Initialize()
. = ..()
- ENABLE_BITFIELD(reagents.reagents_holder_flags, NO_REACT)
+ reagents.reagents_holder_flags |= NO_REACT
/obj/item/integrated_circuit/reagent/storage/grinder
name = "reagent grinder"
@@ -574,7 +574,7 @@
/obj/item/integrated_circuit/reagent/smoke/Initialize()
. = ..()
- ENABLE_BITFIELD(reagents.reagents_holder_flags, OPENCONTAINER)
+ reagents.reagents_holder_flags |= OPENCONTAINER
/obj/item/integrated_circuit/reagent/smoke/on_reagent_change(changetype)
//reset warning only if we have reagents now
@@ -632,7 +632,7 @@
/obj/item/integrated_circuit/reagent/extinguisher/Initialize()
.=..()
- ENABLE_BITFIELD(reagents.reagents_holder_flags, OPENCONTAINER)
+ reagents.reagents_holder_flags |= OPENCONTAINER
set_pin_data(IC_OUTPUT,2, src)
/obj/item/integrated_circuit/reagent/extinguisher/on_reagent_change(changetype)
diff --git a/code/modules/mining/equipment/kinetic_crusher.dm b/code/modules/mining/equipment/kinetic_crusher.dm
index 2149967049..91078bb135 100644
--- a/code/modules/mining/equipment/kinetic_crusher.dm
+++ b/code/modules/mining/equipment/kinetic_crusher.dm
@@ -184,6 +184,7 @@
icon_state = "crusher-glaive"
item_state = "crusher0-glaive"
block_parry_data = /datum/block_parry_data/crusherglaive
+ obj_flags = UNIQUE_RENAME
//ideas: altclick that lets you pummel people with the handguard/handle?
//parrying functionality?
@@ -238,6 +239,36 @@
/obj/item/kinetic_crusher/glaive/bone/update_icon_state()
item_state = "crusher[wielded]-bone"
+/obj/item/kinetic_crusher/glaive/gauntlets
+ name = "proto-kinetic gauntlets"
+ desc = "A pair of scaled-down proto-kinetic crusher destabilizer modules shoved into gauntlets and greaves, often used by \
+ those who wish to spit in the eyes of God. Sacrifices outright damage for \
+ a reliance on backstabs and the ability to give fauna concussions on a parry."
+ attack_verb = list("pummeled", "punched", "jabbed", "hammer-fisted", "uppercut", "slammed")
+ icon_state = "crusher-hands"
+ item_state = "crusher0-fist"
+ unique_reskin = list("Gauntlets" = "crusher-hands",
+ "Fingerless" = "crusher-hands-bare")
+ detonation_damage = 45 // 60 on wield, compared to normal crusher's 70
+ backstab_bonus = 70 // 130 on backstab though
+
+/obj/item/kinetic_crusher/glaive/gauntlets/ComponentInitialize()
+ . = ..()
+ AddComponent(/datum/component/two_handed, force_unwielded=0, force_wielded=15)
+
+/obj/item/kinetic_crusher/glaive/gauntlets/active_parry_reflex_counter(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, list/return_list, parry_efficiency, list/effect_text)
+ . = ..()
+ if(isliving(attacker))
+ var/mob/living/liv_atk = attacker
+ if(liv_atk.mob_size >= MOB_SIZE_LARGE && !ismegafauna(liv_atk))
+ liv_atk.apply_status_effect(STATUS_EFFECT_GAUNTLET_CONC)
+
+/obj/item/kinetic_crusher/glaive/gauntlets/update_icon_state()
+ if(current_skin == "Fingerless")
+ item_state = "crusher[wielded]-fistbare"
+ else
+ item_state = "crusher[wielded]-fist"
+
//destablizing force
/obj/item/projectile/destabilizer
name = "destabilizing force"
diff --git a/code/modules/mining/machine_vending.dm b/code/modules/mining/machine_vending.dm
index 7a3cd9140b..b1bde7d454 100644
--- a/code/modules/mining/machine_vending.dm
+++ b/code/modules/mining/machine_vending.dm
@@ -74,7 +74,7 @@
new /datum/data/mining_equipment("KA AoE Damage", /obj/item/borg/upgrade/modkit/aoe/mobs, 2000),
new /datum/data/mining_equipment("Miner Full Replacement", /obj/item/storage/backpack/duffelbag/mining/cloned, 3000),
new /datum/data/mining_equipment("Premium Accelerator", /obj/item/gun/energy/kinetic_accelerator/premiumka, 8000),
- new /datum/data/mining_equipment("Kinetic Glaive Kit", /obj/item/storage/backpack/duffelbag/mining/glaivekit, 2250),
+ new /datum/data/mining_equipment("Premium Kinetic Melee Kit", /obj/item/storage/backpack/duffelbag/mining/glaivekit, 2250),
new /datum/data/mining_equipment("Survival Dagger", /obj/item/kitchen/knife/combat/survival/knuckledagger, 550),
)
@@ -166,6 +166,7 @@
return
I.mining_points -= prize.cost
to_chat(usr, "[src] clanks to life briefly before vending [prize.equipment_name]!")
+ playsound(src, 'sound/machines/machine_vend.ogg', 50, TRUE, extrarange = -3)
new prize.equipment_path(loc)
SSblackbox.record_feedback("nested tally", "mining_equipment_bought", 1, list("[type]", "[prize.equipment_path]"))
. = TRUE
@@ -187,6 +188,9 @@
if(istype(I, /obj/item/suit_voucher))
RedeemSVoucher(I, user)
return
+ if(istype(I, /obj/item/premium_crusher_voucher))
+ RedeemPCVoucher(I, user)
+ return
if(default_deconstruction_screwdriver(user, "mining-open", "mining", I))
updateUsrDialog()
return
@@ -226,10 +230,46 @@
new /obj/item/kinetic_crusher(drop_location)
if("Mining Conscription Kit")
new /obj/item/storage/backpack/duffelbag/mining/conscript(drop_location)
-
+ playsound(src, 'sound/machines/machine_vend.ogg', 50, TRUE, extrarange = -3)
SSblackbox.record_feedback("tally", "mining_voucher_redeemed", 1, selection)
qdel(voucher)
+/obj/machinery/mineral/equipment_vendor/proc/RedeemSVoucher(obj/item/suit_voucher/voucher, mob/redeemer)
+ var/items = list( "Exo-suit" = image(icon = 'icons/obj/clothing/suits.dmi', icon_state = "exo"),
+ "SEVA suit" = image(icon = 'icons/obj/clothing/suits.dmi', icon_state = "seva"))
+
+ var/selection = show_radial_menu(redeemer, src, items, require_near = TRUE, tooltips = TRUE)
+ if(!selection || !Adjacent(redeemer) || QDELETED(voucher) || voucher.loc != redeemer)
+ return
+ var/drop_location = drop_location()
+ switch(selection)
+ if("Exo-suit")
+ new /obj/item/clothing/suit/hooded/explorer/exo(drop_location)
+ new /obj/item/clothing/mask/gas/exo(drop_location)
+ if("SEVA suit")
+ new /obj/item/clothing/suit/hooded/explorer/seva(drop_location)
+ new /obj/item/clothing/mask/gas/seva(drop_location)
+ playsound(src, 'sound/machines/machine_vend.ogg', 50, TRUE, extrarange = -3)
+ SSblackbox.record_feedback("tally", "suit_voucher_redeemed", 1, selection)
+ qdel(voucher)
+
+/obj/machinery/mineral/equipment_vendor/proc/RedeemPCVoucher(obj/item/premium_crusher_voucher/voucher, mob/redeemer) // someone should REALLY just refactor this
+ var/items = list("Kinetic Glaive" = image(icon = 'icons/obj/mining.dmi', icon_state = "crusher-glaive"),
+ "Kinetic Gauntlets" = image(icon = 'icons/obj/mining.dmi', icon_state = "crusher-hands"))
+
+ var/selection = show_radial_menu(redeemer, src, items, require_near = TRUE, tooltips = TRUE)
+ if(!selection || !Adjacent(redeemer) || QDELETED(voucher) || voucher.loc != redeemer)
+ return
+ var/drop_location = drop_location()
+ switch(selection)
+ if("Kinetic Glaive")
+ new /obj/item/kinetic_crusher/glaive(drop_location)
+ if("Kinetic Gauntlets")
+ new /obj/item/kinetic_crusher/glaive/gauntlets(drop_location)
+ playsound(src, 'sound/machines/machine_vend.ogg', 50, TRUE, extrarange = -3)
+ SSblackbox.record_feedback("tally", "crusher_voucher_redeemed", 1, selection)
+ qdel(voucher)
+
/obj/machinery/mineral/equipment_vendor/ex_act(severity, target)
do_sparks(5, TRUE, src)
if(prob(50 / severity) && severity < 3)
@@ -245,7 +285,7 @@
. = ..()
desc += "\nIt seems a few selections have been added."
prize_list += list(
- new /datum/data/mining_equipment("Extra Id", /obj/item/card/id/mining, 250),
+ new /datum/data/mining_equipment("Extra ID", /obj/item/card/id/mining, 250),
new /datum/data/mining_equipment("Science Goggles", /obj/item/clothing/glasses/science, 250),
new /datum/data/mining_equipment("Monkey Cube", /obj/item/reagent_containers/food/snacks/cube/monkey, 300),
new /datum/data/mining_equipment("Toolbelt", /obj/item/storage/belt/utility, 350),
@@ -273,6 +313,13 @@
icon_state = "mining_voucher"
w_class = WEIGHT_CLASS_TINY
+/obj/item/premium_crusher_voucher
+ name = "premium crusher voucher"
+ desc = "A token to redeem for a premium proto-kinetic melee weapon. Use it on a mining equipment vendor."
+ icon = 'icons/obj/mining.dmi'
+ icon_state = "mining_voucher"
+ w_class = WEIGHT_CLASS_TINY
+
/**********************Mining Point Card**********************/
//mp = Miner Pointers
//c = Cash
@@ -375,24 +422,5 @@
/obj/item/storage/backpack/duffelbag/mining/glaivekit
/obj/item/storage/backpack/duffelbag/mining/glaivekit/PopulateContents()
- new /obj/item/kinetic_crusher/glaive(src)
new /obj/item/kitchen/knife/combat/survival/knuckledagger(src)
-
-/obj/machinery/mineral/equipment_vendor/proc/RedeemSVoucher(obj/item/suit_voucher/voucher, mob/redeemer)
- var/items = list( "Exo-suit" = image(icon = 'icons/obj/clothing/suits.dmi', icon_state = "exo"),
- "SEVA suit" = image(icon = 'icons/obj/clothing/suits.dmi', icon_state = "seva"))
-
- var/selection = show_radial_menu(redeemer, src, items, require_near = TRUE, tooltips = TRUE)
- if(!selection || !Adjacent(redeemer) || QDELETED(voucher) || voucher.loc != redeemer)
- return
- var/drop_location = drop_location()
- switch(selection)
- if("Exo-suit")
- new /obj/item/clothing/suit/hooded/explorer/exo(drop_location)
- new /obj/item/clothing/mask/gas/exo(drop_location)
- if("SEVA suit")
- new /obj/item/clothing/suit/hooded/explorer/seva(drop_location)
- new /obj/item/clothing/mask/gas/seva(drop_location)
-
- SSblackbox.record_feedback("tally", "suit_voucher_redeemed", 1, selection)
- qdel(voucher)
+ new /obj/item/premium_crusher_voucher(src)
diff --git a/code/modules/mob/dead/new_player/sprite_accessories/body_markings.dm b/code/modules/mob/dead/new_player/sprite_accessories/body_markings.dm
index 148af35247..c477bb2cad 100644
--- a/code/modules/mob/dead/new_player/sprite_accessories/body_markings.dm
+++ b/code/modules/mob/dead/new_player/sprite_accessories/body_markings.dm
@@ -27,7 +27,7 @@
/datum/sprite_accessory/mam_body_markings/redpanda
name = "Redpanda"
icon_state = "redpanda"
- covered_limbs = list("Head" = MATRIX_RED_BLUE, "Chest" = MATRIX_RED_GREEN, "Left Leg" = MATRIX_RED_GREEN, "Right Leg" = MATRIX_RED_GREEN, "Left Arm" = MATRIX_RED_GREEN, "Right Arm" = MATRIX_RED_GREEN)
+ covered_limbs = list("Head" = MATRIX_ALL, "Chest" = MATRIX_RED_GREEN, "Left Leg" = MATRIX_RED_GREEN, "Right Leg" = MATRIX_RED_GREEN, "Left Arm" = MATRIX_RED_GREEN, "Right Arm" = MATRIX_RED_GREEN)
/datum/sprite_accessory/mam_body_markings/bat
name = "Bat"
diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm
index f6ef8e8177..0700cba2ea 100644
--- a/code/modules/mob/living/carbon/carbon.dm
+++ b/code/modules/mob/living/carbon/carbon.dm
@@ -198,7 +198,7 @@
if(start_T && end_T)
log_combat(src, throwable_mob, "thrown", addition="grab from tile in [AREACOORD(start_T)] towards tile at [AREACOORD(end_T)]")
- else if(!CHECK_BITFIELD(I.item_flags, ABSTRACT) && !HAS_TRAIT(I, TRAIT_NODROP))
+ else if(!(I.item_flags & ABSTRACT) && !HAS_TRAIT(I, TRAIT_NODROP))
thrown_thing = I
dropItemToGround(I)
@@ -621,12 +621,12 @@
to_chat(src, "You're too exhausted to keep going...")
set_resting(TRUE, FALSE, FALSE)
SEND_SIGNAL(src, COMSIG_DISABLE_COMBAT_MODE)
- ENABLE_BITFIELD(combat_flags, COMBAT_FLAG_HARD_STAMCRIT)
+ combat_flags |= COMBAT_FLAG_HARD_STAMCRIT
filters += CIT_FILTER_STAMINACRIT
update_mobility()
if((combat_flags & COMBAT_FLAG_HARD_STAMCRIT) && total_health <= STAMINA_CRIT_REMOVAL_THRESHOLD)
to_chat(src, "You don't feel nearly as exhausted anymore.")
- DISABLE_BITFIELD(combat_flags, COMBAT_FLAG_HARD_STAMCRIT)
+ combat_flags &= ~(COMBAT_FLAG_HARD_STAMCRIT)
filters -= CIT_FILTER_STAMINACRIT
update_mobility()
UpdateStaminaBuffer()
diff --git a/code/modules/mob/living/carbon/carbon_movement.dm b/code/modules/mob/living/carbon/carbon_movement.dm
index e98ddf5954..ffb8523a9e 100644
--- a/code/modules/mob/living/carbon/carbon_movement.dm
+++ b/code/modules/mob/living/carbon/carbon_movement.dm
@@ -22,14 +22,14 @@
/mob/living/carbon/Moved()
. = ..()
- if(. && !CHECK_BITFIELD(movement_type, FLOATING)) //floating is easy
+ if(. && !(movement_type & FLOATING)) //floating is easy
if(HAS_TRAIT(src, TRAIT_NOHUNGER))
set_nutrition(NUTRITION_LEVEL_FED - 1) //just less than feeling vigorous
else if(nutrition && stat != DEAD)
var/loss = HUNGER_FACTOR/10
if(m_intent == MOVE_INTENT_RUN)
loss *= 2
- adjust_nutrition(loss)
+ adjust_nutrition(-loss)
/mob/living/carbon/can_move_under_living(mob/living/other)
. = ..()
diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm
index f363aecf84..0e75595c75 100644
--- a/code/modules/mob/living/carbon/human/examine.dm
+++ b/code/modules/mob/living/carbon/human/examine.dm
@@ -113,11 +113,11 @@
. += effects_exam
//CIT CHANGES START HERE - adds genital details to examine text
- if(LAZYLEN(internal_organs) && CHECK_BITFIELD(user.client?.prefs.cit_toggles, GENITAL_EXAMINE))
+ if(LAZYLEN(internal_organs) && (user.client?.prefs.cit_toggles & GENITAL_EXAMINE))
for(var/obj/item/organ/genital/dicc in internal_organs)
if(istype(dicc) && dicc.is_exposed())
. += "[dicc.desc]"
- if(CHECK_BITFIELD(user.client?.prefs.cit_toggles, VORE_EXAMINE))
+ if(user.client?.prefs.cit_toggles & VORE_EXAMINE)
var/cursed_stuff = attempt_vr(src,"examine_bellies",args) //vore Code
if(cursed_stuff)
. += cursed_stuff
diff --git a/code/modules/mob/living/carbon/human/innate_abilities/blobform.dm b/code/modules/mob/living/carbon/human/innate_abilities/blobform.dm
index c8f870bf2a..482268f8f5 100644
--- a/code/modules/mob/living/carbon/human/innate_abilities/blobform.dm
+++ b/code/modules/mob/living/carbon/human/innate_abilities/blobform.dm
@@ -62,7 +62,7 @@
H.add_movespeed_modifier(/datum/movespeed_modifier/slime_puddle)
- ENABLE_BITFIELD(H.pass_flags, PASSMOB) //this actually lets people pass over you
+ H.pass_flags |= PASSMOB //this actually lets people pass over you
squeak = H.AddComponent(/datum/component/squeak, custom_sounds = list('sound/effects/blobattack.ogg')) //blorble noise when people step on you
//if the user is a changeling, retract their sting
@@ -103,7 +103,7 @@
REMOVE_TRAIT(H, TRAIT_HUMAN_NO_RENDER, SLIMEPUDDLE_TRAIT)
H.update_disabled_bodyparts(silent = TRUE)
H.remove_movespeed_modifier(/datum/movespeed_modifier/slime_puddle)
- DISABLE_BITFIELD(H.pass_flags, PASSMOB)
+ H.pass_flags &= ~(PASSMOB)
is_puddle = FALSE
if(squeak)
squeak.RemoveComponent()
diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm
index b135ae9cd8..c75654e10b 100644
--- a/code/modules/mob/living/carbon/human/inventory.dm
+++ b/code/modules/mob/living/carbon/human/inventory.dm
@@ -188,9 +188,9 @@
dropItemToGround(r_store, TRUE) //Again, makes sense for pockets to drop.
if(l_store)
dropItemToGround(l_store, TRUE)
- if(wear_id && !CHECK_BITFIELD(wear_id.item_flags, NO_UNIFORM_REQUIRED))
+ if(wear_id && !(wear_id.item_flags & NO_UNIFORM_REQUIRED))
dropItemToGround(wear_id)
- if(belt && !CHECK_BITFIELD(belt.item_flags, NO_UNIFORM_REQUIRED))
+ if(belt && !(belt.item_flags & NO_UNIFORM_REQUIRED))
dropItemToGround(belt)
w_uniform = null
update_suit_sensors()
diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm
index b43cd266be..85f01e63b3 100644
--- a/code/modules/mob/living/carbon/human/life.dm
+++ b/code/modules/mob/living/carbon/human/life.dm
@@ -214,7 +214,7 @@
var/missing_body_parts_flags = ~get_body_parts_flags()
var/max_protection = 1
if(missing_body_parts_flags) //I don't like copypasta as much as proc overhead. Do you want me to make these into a macro?
- DISABLE_BITFIELD(thermal_protection_flags, missing_body_parts_flags)
+ thermal_protection_flags &= ~(missing_body_parts_flags)
if(missing_body_parts_flags & HEAD)
max_protection -= THERMAL_PROTECTION_HEAD
if(missing_body_parts_flags & CHEST)
diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm
index 21554f25b4..3976b1ebca 100644
--- a/code/modules/mob/living/carbon/human/species.dm
+++ b/code/modules/mob/living/carbon/human/species.dm
@@ -1243,7 +1243,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
if(SLOT_BELT)
if(H.belt)
return FALSE
- if(!CHECK_BITFIELD(I.item_flags, NO_UNIFORM_REQUIRED))
+ if(!(I.item_flags & NO_UNIFORM_REQUIRED))
var/obj/item/bodypart/O = H.get_bodypart(BODY_ZONE_CHEST)
if(!H.w_uniform && !nojumpsuit && (!O || !O.is_robotic_limb()))
if(return_warning)
@@ -1285,7 +1285,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
if(SLOT_WEAR_ID)
if(H.wear_id)
return FALSE
- if(!CHECK_BITFIELD(I.item_flags, NO_UNIFORM_REQUIRED))
+ if(!(I.item_flags & NO_UNIFORM_REQUIRED))
var/obj/item/bodypart/O = H.get_bodypart(BODY_ZONE_CHEST)
if(!H.w_uniform && !nojumpsuit && (!O || !O.is_robotic_limb()))
if(return_warning)
diff --git a/code/modules/mob/living/carbon/human/species_types/dullahan.dm b/code/modules/mob/living/carbon/human/species_types/dullahan.dm
index 0418292fea..7cd582d050 100644
--- a/code/modules/mob/living/carbon/human/species_types/dullahan.dm
+++ b/code/modules/mob/living/carbon/human/species_types/dullahan.dm
@@ -31,7 +31,7 @@
/datum/species/dullahan/on_species_gain(mob/living/carbon/human/H, datum/species/old_species)
. = ..()
- DISABLE_BITFIELD(H.flags_1, HEAR_1)
+ H.flags_1 &= ~(HEAR_1)
var/obj/item/bodypart/head/head = H.get_bodypart(BODY_ZONE_HEAD)
if(head)
if(pumpkin)//Pumpkinhead!
@@ -49,7 +49,7 @@
OA.Trigger()
/datum/species/dullahan/on_species_loss(mob/living/carbon/human/H)
- ENABLE_BITFIELD(H.flags_1, HEAR_1)
+ H.flags_1 |= HEAR_1
H.reset_perspective(H)
if(myhead)
var/obj/item/dullahan_relay/DR = myhead
diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm
index a839a0dd83..8516d1decf 100644
--- a/code/modules/mob/living/carbon/life.dm
+++ b/code/modules/mob/living/carbon/life.dm
@@ -324,7 +324,7 @@
if(!HAS_TRAIT(src, TRAIT_NO_INTERNALS))
for(check in GET_INTERNAL_SLOTS(src))
- if(CHECK_BITFIELD(check.clothing_flags, ALLOWINTERNALS))
+ if((check.clothing_flags & ALLOWINTERNALS))
internals = TRUE
if(internal)
if(internal.loc != src)
diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm
index be8241c063..5cbb68eceb 100644
--- a/code/modules/mob/living/living.dm
+++ b/code/modules/mob/living/living.dm
@@ -116,28 +116,28 @@
to_chat(src, "[L] is restraining [P], you cannot push past.")
return 1
- //CIT CHANGES START HERE - makes it so resting stops you from moving through standing folks without a short delay
- if(!CHECK_MOBILITY(src, MOBILITY_STAND) && CHECK_MOBILITY(L, MOBILITY_STAND))
+ //CIT CHANGES START HERE - makes it so resting stops you from moving through standing folks or over prone bodies without a short delay
+ if(!CHECK_MOBILITY(src, MOBILITY_STAND))
var/origtargetloc = L.loc
if(!pulledby)
if(combat_flags & COMBAT_FLAG_ATTEMPTING_CRAWL)
return TRUE
if(IS_STAMCRIT(src))
- to_chat(src, "You're too exhausted to crawl under [L].")
+ to_chat(src, "You're too exhausted to crawl [(CHECK_MOBILITY(L, MOBILITY_STAND)) ? "under": "over"] [L].")
return TRUE
- ENABLE_BITFIELD(combat_flags, COMBAT_FLAG_ATTEMPTING_CRAWL)
- visible_message("[src] is attempting to crawl under [L].",
- "You are now attempting to crawl under [L].",
- target = L, target_message = "[src] is attempting to crawl under you.")
+ combat_flags &= COMBAT_FLAG_ATTEMPTING_CRAWL
+ visible_message("[src] is attempting to crawl [(CHECK_MOBILITY(L, MOBILITY_STAND)) ? "under" : "over"] [L].",
+ "You are now attempting to crawl [(CHECK_MOBILITY(L, MOBILITY_STAND)) ? "under": "over"] [L].",
+ target = L, target_message = "[src] is attempting to crawl [(CHECK_MOBILITY(L, MOBILITY_STAND)) ? "under" : "over"] you.")
if(!do_after(src, CRAWLUNDER_DELAY, target = src) || CHECK_MOBILITY(src, MOBILITY_STAND))
- DISABLE_BITFIELD(combat_flags, COMBAT_FLAG_ATTEMPTING_CRAWL)
+ combat_flags &= ~(COMBAT_FLAG_ATTEMPTING_CRAWL)
return TRUE
var/src_passmob = (pass_flags & PASSMOB)
pass_flags |= PASSMOB
Move(origtargetloc)
if(!src_passmob)
pass_flags &= ~PASSMOB
- DISABLE_BITFIELD(combat_flags, COMBAT_FLAG_ATTEMPTING_CRAWL)
+ combat_flags &= ~(COMBAT_FLAG_ATTEMPTING_CRAWL)
return TRUE
//END OF CIT CHANGES
diff --git a/code/modules/mob/living/living_mobility.dm b/code/modules/mob/living/living_mobility.dm
index 2256a93fa1..af34fb54cf 100644
--- a/code/modules/mob/living/living_mobility.dm
+++ b/code/modules/mob/living/living_mobility.dm
@@ -28,7 +28,7 @@
set name = "Rest"
set category = "IC"
if(client?.prefs?.autostand)
- TOGGLE_BITFIELD(combat_flags, COMBAT_FLAG_INTENTIONALLY_RESTING)
+ (combat_flags ^= COMBAT_FLAG_INTENTIONALLY_RESTING)
to_chat(src, "You are now attempting to [(combat_flags & COMBAT_FLAG_INTENTIONALLY_RESTING) ? "[!resting ? "lay down and ": ""]stay down" : "[resting ? "get up and ": ""]stay up"].")
if((combat_flags & COMBAT_FLAG_INTENTIONALLY_RESTING) && !resting)
set_resting(TRUE, FALSE)
@@ -117,14 +117,14 @@
mobility_flags &= ~(MOBILITY_USE | MOBILITY_PICKUP | MOBILITY_STORAGE | MOBILITY_HOLD)
if(HAS_TRAIT(src, TRAIT_MOBILITY_NOMOVE))
- DISABLE_BITFIELD(mobility_flags, MOBILITY_MOVE)
+ mobility_flags &= ~(MOBILITY_MOVE)
if(HAS_TRAIT(src, TRAIT_MOBILITY_NOPICKUP))
- DISABLE_BITFIELD(mobility_flags, MOBILITY_PICKUP)
+ mobility_flags &= ~(MOBILITY_PICKUP)
if(HAS_TRAIT(src, TRAIT_MOBILITY_NOUSE))
- DISABLE_BITFIELD(mobility_flags, MOBILITY_USE)
+ mobility_flags &= ~(MOBILITY_USE)
if(daze)
- DISABLE_BITFIELD(mobility_flags, MOBILITY_USE)
+ mobility_flags &= ~(MOBILITY_USE)
//Handle update-effects.
if(!CHECK_MOBILITY(src, MOBILITY_HOLD))
diff --git a/code/modules/mob/living/living_movement.dm b/code/modules/mob/living/living_movement.dm
index 07b40b3ab1..ca7960ff69 100644
--- a/code/modules/mob/living/living_movement.dm
+++ b/code/modules/mob/living/living_movement.dm
@@ -37,6 +37,8 @@
if(mover in buckled_mobs)
return TRUE
var/mob/living/L = mover //typecast first, check isliving and only check this if living using short circuit
+ if(isliving(L) && lying && L.lying) //if we're both lying down and aren't already being thrown/shipped around, don't pass
+ return FALSE
return (!density || (isliving(mover)? L.can_move_under_living(src) : !mover.density))
/mob/living/toggle_move_intent()
diff --git a/code/modules/mob/living/living_sprint.dm b/code/modules/mob/living/living_sprint.dm
index 3fbc229385..e45866bcf6 100644
--- a/code/modules/mob/living/living_sprint.dm
+++ b/code/modules/mob/living/living_sprint.dm
@@ -30,7 +30,7 @@
return
if(combat_flags & COMBAT_FLAG_SPRINT_ACTIVE)
return
- ENABLE_BITFIELD(combat_flags, COMBAT_FLAG_SPRINT_ACTIVE)
+ combat_flags |= COMBAT_FLAG_SPRINT_ACTIVE
add_movespeed_modifier(/datum/movespeed_modifier/sprinting)
if(update_icon)
update_sprint_icon()
@@ -38,7 +38,7 @@
/mob/living/proc/disable_sprint_mode(update_icon = TRUE)
if(!(combat_flags & COMBAT_FLAG_SPRINT_ACTIVE) || (combat_flags & COMBAT_FLAG_SPRINT_FORCED))
return
- DISABLE_BITFIELD(combat_flags, COMBAT_FLAG_SPRINT_ACTIVE)
+ combat_flags &= ~(COMBAT_FLAG_SPRINT_ACTIVE)
remove_movespeed_modifier(/datum/movespeed_modifier/sprinting)
if(update_icon)
update_sprint_icon()
@@ -46,7 +46,7 @@
/mob/living/proc/enable_intentional_sprint_mode()
if((combat_flags & COMBAT_FLAG_SPRINT_TOGGLED) && (combat_flags & COMBAT_FLAG_SPRINT_ACTIVE))
return
- ENABLE_BITFIELD(combat_flags, COMBAT_FLAG_SPRINT_TOGGLED)
+ combat_flags |= COMBAT_FLAG_SPRINT_TOGGLED
if(!HAS_TRAIT(src, TRAIT_SPRINT_LOCKED) && !(combat_flags & COMBAT_FLAG_SPRINT_ACTIVE))
enable_sprint_mode(FALSE)
update_sprint_icon()
@@ -57,7 +57,7 @@
return
if(combat_flags & COMBAT_FLAG_SPRINT_FORCED)
return
- DISABLE_BITFIELD(combat_flags, COMBAT_FLAG_SPRINT_TOGGLED)
+ combat_flags &= ~(COMBAT_FLAG_SPRINT_TOGGLED)
if(combat_flags & COMBAT_FLAG_SPRINT_ACTIVE)
disable_sprint_mode(FALSE)
update_sprint_icon()
diff --git a/code/modules/mob/living/simple_animal/bot/cleanbot.dm b/code/modules/mob/living/simple_animal/bot/cleanbot.dm
index a52e975f9a..5b812086c8 100644
--- a/code/modules/mob/living/simple_animal/bot/cleanbot.dm
+++ b/code/modules/mob/living/simple_animal/bot/cleanbot.dm
@@ -182,7 +182,7 @@
deputize(W, user)
else if(istype(W, /obj/item/mop/advanced))
- if(bot_core.allowed(user) && open && !CHECK_BITFIELD(upgrades,UPGRADE_CLEANER_ADVANCED_MOP))
+ if(bot_core.allowed(user) && open && !(upgrades & UPGRADE_CLEANER_ADVANCED_MOP))
to_chat(user, "You replace \the [src] old mop with a new better one!")
upgrades |= UPGRADE_CLEANER_ADVANCED_MOP
clean_time = 20 //2.5 the speed!
@@ -198,7 +198,7 @@
to_chat(user, "The [src] already has this mop!")
else if(istype(W, /obj/item/broom))
- if(bot_core.allowed(user) && open && !CHECK_BITFIELD(upgrades,UPGRADE_CLEANER_BROOM))
+ if(bot_core.allowed(user) && open && !(upgrades & UPGRADE_CLEANER_BROOM))
to_chat(user, "You add to \the [src] a broom speeding it up!")
upgrades |= UPGRADE_CLEANER_BROOM
base_speed = 1 //2x faster!
diff --git a/code/modules/mob/living/simple_animal/bot/floorbot.dm b/code/modules/mob/living/simple_animal/bot/floorbot.dm
index ff6941ec70..a67642f8ca 100644
--- a/code/modules/mob/living/simple_animal/bot/floorbot.dm
+++ b/code/modules/mob/living/simple_animal/bot/floorbot.dm
@@ -124,7 +124,7 @@
to_chat(user, "You need at least one floor tile to put into [src]!")
else if(istype(W, /obj/item/storage/toolbox/artistic))
- if(bot_core.allowed(user) && open && !CHECK_BITFIELD(upgrades,UPGRADE_FLOOR_ARTBOX))
+ if(bot_core.allowed(user) && open && !(upgrades & UPGRADE_FLOOR_ARTBOX))
to_chat(user, "You upgrade \the [src] case to hold more!")
upgrades |= UPGRADE_FLOOR_ARTBOX
maxtiles += 100 //Double the storage!
@@ -139,7 +139,7 @@
to_chat(user, "The [src] already has a upgraded case!")
else if(istype(W, /obj/item/storage/toolbox/syndicate))
- if(bot_core.allowed(user) && open && !CHECK_BITFIELD(upgrades,UPGRADE_FLOOR_SYNDIBOX))
+ if(bot_core.allowed(user) && open && !(upgrades & UPGRADE_FLOOR_SYNDIBOX))
to_chat(user, "You upgrade \the [src] case to hold more!")
upgrades |= UPGRADE_FLOOR_SYNDIBOX
maxtiles += 200 //Double bse storage
@@ -433,4 +433,4 @@
if(robot.mode == BOT_REPAIRING)
return TRUE
return FALSE
-
+
diff --git a/code/modules/mob/living/simple_animal/bot/medbot.dm b/code/modules/mob/living/simple_animal/bot/medbot.dm
index 25f6509ad0..b343328e7f 100644
--- a/code/modules/mob/living/simple_animal/bot/medbot.dm
+++ b/code/modules/mob/living/simple_animal/bot/medbot.dm
@@ -254,7 +254,7 @@
show_controls(user)
else if(istype(W, /obj/item/reagent_containers/syringe/piercing))
- if(bot_core.allowed(user) && open && !CHECK_BITFIELD(upgrades,UPGRADE_MEDICAL_PIERERCING))
+ if(bot_core.allowed(user) && open && !(upgrades & UPGRADE_MEDICAL_PIERERCING))
to_chat(user, "You replace \the [src] syringe with a diamond-tipped one!")
upgrades |= UPGRADE_MEDICAL_PIERERCING
qdel(W)
@@ -268,7 +268,7 @@
to_chat(user, "The [src] already has a diamond-tipped syringe!")
else if(istype(W, /obj/item/hypospray/mkii))
- if(bot_core.allowed(user) && open && !CHECK_BITFIELD(upgrades,UPGRADE_MEDICAL_HYPOSPRAY))
+ if(bot_core.allowed(user) && open && !(upgrades & UPGRADE_MEDICAL_HYPOSPRAY))
to_chat(user, "You replace \the [src] syringe base with a DeForest Medical MK.II Hypospray!")
upgrades |= UPGRADE_MEDICAL_HYPOSPRAY
injection_time = 15 //Half the time half the death!
@@ -284,7 +284,7 @@
to_chat(user, "The [src] already has a DeForest Medical Hypospray base!")
else if(istype(W, /obj/item/circuitboard/machine/chem_dispenser))
- if(bot_core.allowed(user) && open && !CHECK_BITFIELD(upgrades,UPGRADE_MEDICAL_CHEM_BOARD))
+ if(bot_core.allowed(user) && open && !(upgrades & UPGRADE_MEDICAL_CHEM_BOARD))
to_chat(user, "You add in the board upgrading \the [src] reagent banks!")
upgrades |= UPGRADE_MEDICAL_CHEM_BOARD
treatment_oxy = /datum/reagent/medicine/salbutamol //Replaces Dex with salbutamol "better" healing of o2
@@ -299,7 +299,7 @@
to_chat(user, "The [src] already has this upgrade!")
else if(istype(W, /obj/item/circuitboard/machine/cryo_tube))
- if(bot_core.allowed(user) && open && !CHECK_BITFIELD(upgrades,UPGRADE_MEDICAL_CRYO_BOARD))
+ if(bot_core.allowed(user) && open && !(upgrades & UPGRADE_MEDICAL_CRYO_BOARD))
to_chat(user, "You add in the board upgrading \the [src] reagent banks!")
upgrades |= UPGRADE_MEDICAL_CRYO_BOARD
treatment_fire = /datum/reagent/medicine/oxandrolone //Replaces Kep with oxandrolone "better" healing of burns
@@ -314,7 +314,7 @@
to_chat(user, "The [src] already has this upgrade!")
else if(istype(W, /obj/item/circuitboard/machine/chem_master))
- if(bot_core.allowed(user) && open && !CHECK_BITFIELD(upgrades,UPGRADE_MEDICAL_CHEM_MASTER))
+ if(bot_core.allowed(user) && open && !(upgrades & UPGRADE_MEDICAL_CHEM_MASTER))
to_chat(user, "You add in the board upgrading \the [src] reagent banks!")
upgrades |= UPGRADE_MEDICAL_CHEM_MASTER
treatment_brute = /datum/reagent/medicine/sal_acid //Replaces Bic with Sal Acid "better" healing of brute
@@ -329,7 +329,7 @@
to_chat(user, "the [src] already has this upgrade!")
else if(istype(W, /obj/item/circuitboard/machine/sleeper))
- if(bot_core.allowed(user) && open && !CHECK_BITFIELD(upgrades,UPGRADE_MEDICAL_SLEEP_BOARD))
+ if(bot_core.allowed(user) && open && !(upgrades & UPGRADE_MEDICAL_SLEEP_BOARD))
to_chat(user, "You add in the board upgrading \the [src] reagent banks!")
upgrades |= UPGRADE_MEDICAL_SLEEP_BOARD
treatment_tox = /datum/reagent/medicine/pen_acid //replaces charcoal with pen acid a "better" healing of toxins
@@ -359,7 +359,7 @@
audible_message("[src] buzzes oddly!")
flick("medibot_spark", src)
playsound(src, "sparks", 75, 1)
- if(!CHECK_BITFIELD(upgrades,UPGRADE_MEDICAL_PIERERCING))
+ if(!(upgrades & UPGRADE_MEDICAL_PIERERCING))
upgrades |= UPGRADE_MEDICAL_PIERERCING //Jabs even harder through the clothing!
if(user)
oldpatient = user
@@ -558,7 +558,7 @@
if(ishuman(C))
var/mob/living/carbon/human/H = C
- if (H.wear_suit && H.head && istype(H.wear_suit, /obj/item/clothing) && istype(H.head, /obj/item/clothing) && !CHECK_BITFIELD(upgrades,UPGRADE_MEDICAL_PIERERCING))
+ if (H.wear_suit && H.head && istype(H.wear_suit, /obj/item/clothing) && istype(H.head, /obj/item/clothing) && !(upgrades & UPGRADE_MEDICAL_PIERERCING))
var/obj/item/clothing/CS = H.wear_suit
var/obj/item/clothing/CH = H.head
if (CS.clothing_flags & CH.clothing_flags & THICKMATERIAL)
diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm
index 01a30bb90a..029adbe92f 100644
--- a/code/modules/mob/living/simple_animal/hostile/hostile.dm
+++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm
@@ -367,7 +367,7 @@
if(vore_active)
if(isliving(target))
var/mob/living/L = target
- if(!client && L.Adjacent(src) && CHECK_BITFIELD(L.vore_flags, DEVOURABLE) && CHECK_BITFIELD(L.vore_flags, MOBVORE)) // aggressive check to ensure vore attacks can be made
+ if(!client && L.Adjacent(src) && (L.vore_flags & DEVOURABLE) && (L.vore_flags & MOBVORE)) // aggressive check to ensure vore attacks can be made
if(prob(voracious_chance))
vore_attack(src,L,src)
else
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm
index 08ed786252..4e7d493c3b 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm
@@ -59,6 +59,7 @@ Difficulty: Medium
/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/Initialize()
. = ..()
+ internal = new/obj/item/gps/internal/miner(src)
miner_saw = new(src)
/datum/action/innate/megafauna_attack/dash
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm
index 3940388625..79111d3de2 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm
@@ -122,7 +122,7 @@
if(!client && ranged && ranged_cooldown <= world.time)
OpenFire()
if(L.Adjacent(src) && (L.stat != CONSCIOUS))
- if(vore_active && CHECK_BITFIELD(L.vore_flags,DEVOURABLE))
+ if(vore_active && (L.vore_flags & DEVOURABLE))
vore_attack(src,L,src)
LoseTarget()
else
diff --git a/code/modules/mob/living/simple_animal/simple_animal_vr.dm b/code/modules/mob/living/simple_animal/simple_animal_vr.dm
index de5bb578b8..69dee76f34 100644
--- a/code/modules/mob/living/simple_animal/simple_animal_vr.dm
+++ b/code/modules/mob/living/simple_animal/simple_animal_vr.dm
@@ -49,10 +49,10 @@
// Simple animals have only one belly. This creates it (if it isn't already set up)
/mob/living/simple_animal/init_vore()
- ENABLE_BITFIELD(vore_flags, VORE_INIT)
- if(CHECK_BITFIELD(flags_1, HOLOGRAM_1))
+ vore_flags |= VORE_INIT
+ if((flags_1 & HOLOGRAM_1))
return
- if(!vore_active || CHECK_BITFIELD(vore_flags, NO_VORE)) //If it can't vore, let's not give it a stomach.
+ if(!vore_active || (vore_flags & NO_VORE)) //If it can't vore, let's not give it a stomach.
return
if(vore_active && !IsAdvancedToolUser()) //vore active, but doesn't have thumbs to grab people with.
verbs |= /mob/living/simple_animal/proc/animal_nom
@@ -133,6 +133,6 @@
if (stat != CONSCIOUS)
return
- if(!CHECK_BITFIELD(T.vore_flags,DEVOURABLE))
+ if(!(T.vore_flags & DEVOURABLE))
return
return vore_attack(src,T,src)
diff --git a/code/modules/mob/living/simple_animal/slime/slime.dm b/code/modules/mob/living/simple_animal/slime/slime.dm
index 68de074e07..38149494bc 100644
--- a/code/modules/mob/living/simple_animal/slime/slime.dm
+++ b/code/modules/mob/living/simple_animal/slime/slime.dm
@@ -466,7 +466,7 @@
SStun = world.time + rand(20,60)
spawn(0)
- DISABLE_BITFIELD(mobility_flags, MOBILITY_MOVE)
+ mobility_flags &= ~(MOBILITY_MOVE)
if(user)
step_away(src,user,15)
sleep(3)
diff --git a/code/modules/mob/living/simple_animal/slime/slime_mobility.dm b/code/modules/mob/living/simple_animal/slime/slime_mobility.dm
index 5be5ff4e36..77f2bde864 100644
--- a/code/modules/mob/living/simple_animal/slime/slime_mobility.dm
+++ b/code/modules/mob/living/simple_animal/slime/slime_mobility.dm
@@ -1,5 +1,5 @@
/mob/living/simple_animal/slime/update_mobility()
. = ..()
if(Tempstun && !buckled)
- DISABLE_BITFIELD(., MOBILITY_MOVE)
+ . &= ~(MOBILITY_MOVE)
mobility_flags = .
diff --git a/code/modules/movespeed/modifiers/mobs.dm b/code/modules/movespeed/modifiers/mobs.dm
index 153d7dd973..ddeef393ac 100644
--- a/code/modules/movespeed/modifiers/mobs.dm
+++ b/code/modules/movespeed/modifiers/mobs.dm
@@ -167,3 +167,6 @@
/datum/movespeed_modifier/dragon_depression
multiplicative_slowdown = 5
+
+/datum/movespeed_modifier/gauntlet_concussion
+ multiplicative_slowdown = 5
diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm
index 515349d666..2e38fdd840 100644
--- a/code/modules/power/apc.dm
+++ b/code/modules/power/apc.dm
@@ -300,7 +300,7 @@
area.power_equip = FALSE
area.power_environ = FALSE
area.power_change()
- area.poweralert(FALSE, src)
+ area.poweralert(TRUE, src)
if(occupier)
malfvacate(1)
qdel(wires)
@@ -1444,8 +1444,6 @@
lighting = autoset(lighting, AUTOSET_ON)
environ = autoset(environ, AUTOSET_ON)
area.poweralert(FALSE, src)
- if(cell.percent() > 75)
- area.poweralert(FALSE, src)
// now trickle-charge the cell
if(chargemode && charging == APC_CHARGING && operating)
diff --git a/code/modules/projectiles/ammunition/ballistic/shotgun.dm b/code/modules/projectiles/ammunition/ballistic/shotgun.dm
index 2a41b41d1d..04e8e62029 100644
--- a/code/modules/projectiles/ammunition/ballistic/shotgun.dm
+++ b/code/modules/projectiles/ammunition/ballistic/shotgun.dm
@@ -139,7 +139,7 @@
/obj/item/ammo_casing/shotgun/dart/noreact/Initialize()
. = ..()
- ENABLE_BITFIELD(reagents.reagents_holder_flags, NO_REACT)
+ reagents.reagents_holder_flags |= NO_REACT
/obj/item/ammo_casing/shotgun/dart/bioterror
desc = "A shotgun dart filled with an obscene amount of lethal reagents. God help whoever is shot with this."
diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm
index 0a7598cd79..07fc4bf9de 100644
--- a/code/modules/projectiles/projectile.dm
+++ b/code/modules/projectiles/projectile.dm
@@ -362,7 +362,7 @@
/obj/item/projectile/proc/process_hit(turf/T, atom/target, qdel_self, hit_something = FALSE) //probably needs to be reworked entirely when pixel movement is done.
if(QDELETED(src) || !T || !target) //We're done, nothing's left.
- if((qdel_self == FORCE_QDEL) || ((qdel_self == QDEL_SELF) && !temporary_unstoppable_movement && !CHECK_BITFIELD(movement_type, UNSTOPPABLE)))
+ if((qdel_self == FORCE_QDEL) || ((qdel_self == QDEL_SELF) && !temporary_unstoppable_movement && !(movement_type & UNSTOPPABLE)))
qdel(src)
return hit_something
permutated |= target //Make sure we're never hitting it again. If we ever run into weirdness with piercing projectiles needing to hit something multiple times.. well.. that's a to-do.
@@ -370,16 +370,16 @@
return process_hit(T, select_target(T), qdel_self, hit_something) //Hit whatever else we can since that didn't work.
var/result = target.bullet_act(src, def_zone)
if(result == BULLET_ACT_FORCE_PIERCE)
- if(!CHECK_BITFIELD(movement_type, UNSTOPPABLE))
+ if(!(movement_type & UNSTOPPABLE))
temporary_unstoppable_movement = TRUE
- ENABLE_BITFIELD(movement_type, UNSTOPPABLE)
+ movement_type |= UNSTOPPABLE
return process_hit(T, select_target(T), qdel_self, TRUE) //Hit whatever else we can since we're piercing through but we're still on the same tile.
else if(result == BULLET_ACT_TURF) //We hit the turf but instead we're going to also hit something else on it.
return process_hit(T, select_target(T), QDEL_SELF, TRUE)
else //Whether it hit or blocked, we're done!
qdel_self = QDEL_SELF
hit_something = TRUE
- if((qdel_self == FORCE_QDEL) || ((qdel_self == QDEL_SELF) && !temporary_unstoppable_movement && !CHECK_BITFIELD(movement_type, UNSTOPPABLE)))
+ if((qdel_self == FORCE_QDEL) || ((qdel_self == QDEL_SELF) && !temporary_unstoppable_movement && !(movement_type & UNSTOPPABLE)))
qdel(src)
return hit_something
@@ -775,7 +775,7 @@
if(.)
if(temporary_unstoppable_movement)
temporary_unstoppable_movement = FALSE
- DISABLE_BITFIELD(movement_type, UNSTOPPABLE)
+ movement_type &= ~(UNSTOPPABLE)
if(fired && can_hit_target(original, permutated, TRUE))
Bump(original)
diff --git a/code/modules/projectiles/projectile/bullets/dart_syringe.dm b/code/modules/projectiles/projectile/bullets/dart_syringe.dm
index 318acb66b5..4978e679b4 100644
--- a/code/modules/projectiles/projectile/bullets/dart_syringe.dm
+++ b/code/modules/projectiles/projectile/bullets/dart_syringe.dm
@@ -25,7 +25,7 @@
"You were protected against \the [src]!")
..(target, blocked)
- DISABLE_BITFIELD(reagents.reagents_holder_flags, NO_REACT)
+ reagents.reagents_holder_flags &= ~(NO_REACT)
reagents.handle_reactions()
return BULLET_ACT_HIT
diff --git a/code/modules/projectiles/projectile/special/curse.dm b/code/modules/projectiles/projectile/special/curse.dm
index d967540e6a..6c682763ae 100644
--- a/code/modules/projectiles/projectile/special/curse.dm
+++ b/code/modules/projectiles/projectile/special/curse.dm
@@ -31,7 +31,7 @@
/obj/item/projectile/curse_hand/prehit(atom/target)
if(target == original)
- DISABLE_BITFIELD(movement_type, UNSTOPPABLE)
+ movement_type &= ~(UNSTOPPABLE)
else if(!isturf(target))
return FALSE
return ..()
@@ -40,7 +40,7 @@
if(arm)
arm.End()
arm = null
- if(CHECK_BITFIELD(movement_type, UNSTOPPABLE))
+ if((movement_type & UNSTOPPABLE))
playsound(src, 'sound/effects/curse3.ogg', 25, 1, -1)
var/turf/T = get_step(src, dir)
var/obj/effect/temp_visual/dir_setting/curse/hand/leftover = new(T, dir)
diff --git a/code/modules/reagents/chemistry/reagents.dm b/code/modules/reagents/chemistry/reagents.dm
index d6b7201ef9..154a58cdfd 100644
--- a/code/modules/reagents/chemistry/reagents.dm
+++ b/code/modules/reagents/chemistry/reagents.dm
@@ -1,4 +1,3 @@
-#define REM REAGENTS_EFFECT_MULTIPLIER
GLOBAL_LIST_INIT(name2reagent, build_name2reagent())
/proc/build_name2reagent()
diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm
index 12c91e145a..72112d9a65 100644
--- a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm
@@ -47,7 +47,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/on_mob_life(mob/living/carbon/C)
if(HAS_TRAIT(C, TRAIT_TOXIC_ALCOHOL))
- C.adjustToxLoss((boozepwr/25)*REM,forced = TRUE)
+ C.adjustToxLoss((boozepwr/25)*REAGENTS_EFFECT_MULTIPLIER,forced = TRUE)
else if(C.drunkenness < volume * boozepwr * ALCOHOL_THRESHOLD_MODIFIER)
var/booze_power = boozepwr
if(HAS_TRAIT(C, TRAIT_ALCOHOL_TOLERANCE)) //we're an accomplished drinker
@@ -1365,7 +1365,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/neurotoxin/on_mob_life(mob/living/carbon/M)
M.set_drugginess(50)
M.dizziness +=2
- M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 1*REM, 150)
+ M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 1*REAGENTS_EFFECT_MULTIPLIER, 150)
if(prob(20) && !holder.has_reagent(/datum/reagent/consumable/ethanol/neuroweak))
M.adjustStaminaLoss(10)
M.drop_all_held_items()
@@ -1376,7 +1376,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
ADD_TRAIT(M, t, type)
M.adjustStaminaLoss(10)
if(current_cycle > 30)
- M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 2*REM)
+ M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 2*REAGENTS_EFFECT_MULTIPLIER)
if(current_cycle > 50 && prob(15))
if(!M.undergoing_cardiac_arrest() && M.can_heartattack())
M.set_heartattack(TRUE)
@@ -1401,13 +1401,13 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/neuroweak/on_mob_life(mob/living/carbon/M)
if(holder.has_reagent(/datum/reagent/consumable/ethanol/neurotoxin))
- M.adjustOrganLoss(ORGAN_SLOT_BRAIN, -1*REM, 150)
+ M.adjustOrganLoss(ORGAN_SLOT_BRAIN, -1*REAGENTS_EFFECT_MULTIPLIER, 150)
M.reagents.remove_reagent(/datum/reagent/consumable/ethanol/neurotoxin, 1.5 * REAGENTS_METABOLISM, FALSE)
else if(holder.has_reagent(/datum/reagent/toxin/fentanyl))
- M.adjustOrganLoss(ORGAN_SLOT_BRAIN, -1*REM, 150)
+ M.adjustOrganLoss(ORGAN_SLOT_BRAIN, -1*REAGENTS_EFFECT_MULTIPLIER, 150)
M.reagents.remove_reagent(/datum/reagent/toxin/fentanyl, 0.75 * REAGENTS_METABOLISM, FALSE)
else
- M.adjustOrganLoss(ORGAN_SLOT_BRAIN, -0.5*REM, 150)
+ M.adjustOrganLoss(ORGAN_SLOT_BRAIN, -0.5*REAGENTS_EFFECT_MULTIPLIER, 150)
M.dizziness +=2
..()
@@ -1925,7 +1925,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/fernet/on_mob_life(mob/living/carbon/M)
if(M.nutrition <= NUTRITION_LEVEL_STARVING)
- M.adjustToxLoss(1*REM, 0)
+ M.adjustToxLoss(1*REAGENTS_EFFECT_MULTIPLIER, 0)
M.adjust_nutrition(-5)
M.overeatduration = 0
return ..()
@@ -1943,7 +1943,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/fernet_cola/on_mob_life(mob/living/carbon/M)
if(M.nutrition <= NUTRITION_LEVEL_STARVING)
- M.adjustToxLoss(0.5*REM, 0)
+ M.adjustToxLoss(0.5*REAGENTS_EFFECT_MULTIPLIER, 0)
M.adjust_nutrition(-3)
M.overeatduration = 0
return ..()
diff --git a/code/modules/reagents/chemistry/reagents/drink_reagents.dm b/code/modules/reagents/chemistry/reagents/drink_reagents.dm
index 5059376954..4376805e2c 100644
--- a/code/modules/reagents/chemistry/reagents/drink_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/drink_reagents.dm
@@ -47,7 +47,7 @@
/datum/reagent/consumable/limejuice/on_mob_life(mob/living/carbon/M)
if(M.getToxLoss() && prob(20))
- M.adjustToxLoss(-1*REM, 0)
+ M.adjustToxLoss(-1*REAGENTS_EFFECT_MULTIPLIER, 0)
. = 1
..()
diff --git a/code/modules/reagents/chemistry/reagents/drug_reagents.dm b/code/modules/reagents/chemistry/reagents/drug_reagents.dm
index ed80804f28..4848347df2 100644
--- a/code/modules/reagents/chemistry/reagents/drug_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/drug_reagents.dm
@@ -59,7 +59,7 @@
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "smoked", /datum/mood_event/smoked, name)
M.AdjustAllImmobility(-20, 0)
M.AdjustUnconscious(-20, 0)
- M.adjustStaminaLoss(-0.5*REM, 0)
+ M.adjustStaminaLoss(-0.5*REAGENTS_EFFECT_MULTIPLIER, 0)
..()
. = 1
@@ -83,30 +83,30 @@
. = 1
/datum/reagent/drug/crank/overdose_process(mob/living/M)
- M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 2*REM)
- M.adjustToxLoss(2*REM, 0)
- M.adjustBruteLoss(2*REM, 0)
+ M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 2*REAGENTS_EFFECT_MULTIPLIER)
+ M.adjustToxLoss(2*REAGENTS_EFFECT_MULTIPLIER, 0)
+ M.adjustBruteLoss(2*REAGENTS_EFFECT_MULTIPLIER, 0)
..()
. = 1
/datum/reagent/drug/crank/addiction_act_stage1(mob/living/M)
- M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 5*REM)
+ M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 5*REAGENTS_EFFECT_MULTIPLIER)
..()
/datum/reagent/drug/crank/addiction_act_stage2(mob/living/M)
- M.adjustToxLoss(5*REM, 0)
+ M.adjustToxLoss(5*REAGENTS_EFFECT_MULTIPLIER, 0)
..()
. = 1
/datum/reagent/drug/crank/addiction_act_stage3(mob/living/M)
- M.adjustBruteLoss(5*REM, 0)
+ M.adjustBruteLoss(5*REAGENTS_EFFECT_MULTIPLIER, 0)
..()
. = 1
/datum/reagent/drug/crank/addiction_act_stage4(mob/living/M)
- M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 3*REM)
- M.adjustToxLoss(5*REM, 0)
- M.adjustBruteLoss(5*REM, 0)
+ M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 3*REAGENTS_EFFECT_MULTIPLIER)
+ M.adjustToxLoss(5*REAGENTS_EFFECT_MULTIPLIER, 0)
+ M.adjustBruteLoss(5*REAGENTS_EFFECT_MULTIPLIER, 0)
..()
. = 1
@@ -128,14 +128,14 @@
..()
/datum/reagent/drug/krokodil/overdose_process(mob/living/M)
- M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 0.25*REM)
- M.adjustToxLoss(0.25*REM, 0)
+ M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 0.25*REAGENTS_EFFECT_MULTIPLIER)
+ M.adjustToxLoss(0.25*REAGENTS_EFFECT_MULTIPLIER, 0)
..()
. = 1
/datum/reagent/drug/krokodil/addiction_act_stage1(mob/living/M)
- M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 2*REM)
- M.adjustToxLoss(2*REM, 0)
+ M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 2*REAGENTS_EFFECT_MULTIPLIER)
+ M.adjustToxLoss(2*REAGENTS_EFFECT_MULTIPLIER, 0)
..()
. = 1
@@ -147,7 +147,7 @@
/datum/reagent/drug/krokodil/addiction_act_stage3(mob/living/M)
if(prob(25))
to_chat(M, "Your skin starts to peel away...")
- M.adjustBruteLoss(3*REM, 0)
+ M.adjustBruteLoss(3*REAGENTS_EFFECT_MULTIPLIER, 0)
..()
. = 1
@@ -155,10 +155,10 @@
CHECK_DNA_AND_SPECIES(M)
if(!istype(M.dna.species, /datum/species/krokodil_addict))
to_chat(M, "Your skin falls off easily!")
- M.adjustBruteLoss(50*REM, 0) // holy shit your skin just FELL THE FUCK OFF
+ M.adjustBruteLoss(50*REAGENTS_EFFECT_MULTIPLIER, 0) // holy shit your skin just FELL THE FUCK OFF
M.set_species(/datum/species/krokodil_addict)
else
- M.adjustBruteLoss(5*REM, 0)
+ M.adjustBruteLoss(5*REAGENTS_EFFECT_MULTIPLIER, 0)
..()
. = 1
@@ -186,14 +186,14 @@
if(DT_PROB(2.5, delta_time))
to_chat(M, span_notice("[high_message]"))
// SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "tweaking", /datum/mood_event/stimulant_medium, name)
- M.AdjustStun(-40 * REM * delta_time)
- M.AdjustKnockdown(-40 * REM * delta_time)
- M.AdjustUnconscious(-40 * REM * delta_time)
- M.AdjustParalyzed(-40 * REM * delta_time)
- M.AdjustImmobilized(-40 * REM * delta_time)
- M.adjustStaminaLoss(-2 * REM * delta_time, 0)
- M.Jitter(2 * REM * delta_time)
- M.adjustOrganLoss(ORGAN_SLOT_BRAIN, rand(1, 4) * REM * delta_time)
+ M.AdjustStun(-40 * REAGENTS_EFFECT_MULTIPLIER * delta_time)
+ M.AdjustKnockdown(-40 * REAGENTS_EFFECT_MULTIPLIER * delta_time)
+ M.AdjustUnconscious(-40 * REAGENTS_EFFECT_MULTIPLIER * delta_time)
+ M.AdjustParalyzed(-40 * REAGENTS_EFFECT_MULTIPLIER * delta_time)
+ M.AdjustImmobilized(-40 * REAGENTS_EFFECT_MULTIPLIER * delta_time)
+ M.adjustStaminaLoss(-2 * REAGENTS_EFFECT_MULTIPLIER * delta_time, 0)
+ M.Jitter(2 * REAGENTS_EFFECT_MULTIPLIER * delta_time)
+ M.adjustOrganLoss(ORGAN_SLOT_BRAIN, rand(1, 4) * REAGENTS_EFFECT_MULTIPLIER * delta_time)
if(DT_PROB(2.5, delta_time))
M.emote(pick("twitch", "shiver"))
..()
@@ -201,7 +201,7 @@
/datum/reagent/drug/methamphetamine/overdose_process(mob/living/M, delta_time, times_fired)
if(CHECK_MOBILITY(M, MOBILITY_MOVE) && !ismovable(M.loc))
- for(var/i in 1 to round(4 * REM * delta_time, 1))
+ for(var/i in 1 to round(4 * REAGENTS_EFFECT_MULTIPLIER * delta_time, 1))
step(M, pick(GLOB.cardinals))
if(DT_PROB(10, delta_time))
M.emote("laugh")
@@ -209,8 +209,8 @@
M.visible_message(span_danger("[M]'s hands flip out and flail everywhere!"))
M.drop_all_held_items()
..()
- M.adjustToxLoss(1 * REM * delta_time, 0)
- M.adjustOrganLoss(ORGAN_SLOT_BRAIN, (rand(5, 10) / 10) * REM * delta_time)
+ M.adjustToxLoss(1 * REAGENTS_EFFECT_MULTIPLIER * delta_time, 0)
+ M.adjustOrganLoss(ORGAN_SLOT_BRAIN, (rand(5, 10) / 10) * REAGENTS_EFFECT_MULTIPLIER * delta_time)
. = TRUE
/datum/reagent/drug/methamphetamine/addiction_act_stage1(mob/living/M)
@@ -486,8 +486,8 @@
H.dna.species.punchstunthreshold += 2
/datum/reagent/drug/skooma/on_mob_life(mob/living/carbon/M)
- M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 1*REM)
- M.adjustToxLoss(1*REM)
+ M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 1*REAGENTS_EFFECT_MULTIPLIER)
+ M.adjustToxLoss(1*REAGENTS_EFFECT_MULTIPLIER)
if(prob(10))
M.adjust_blurriness(2)
..()
@@ -531,7 +531,7 @@
value = REAGENT_VALUE_VERY_RARE
/datum/reagent/syndicateadrenals/on_mob_life(mob/living/M)
- M.adjustStaminaLoss(-5*REM)
+ M.adjustStaminaLoss(-5*REAGENTS_EFFECT_MULTIPLIER)
. = ..()
/datum/reagent/syndicateadrenals/on_mob_metabolize(mob/living/M)
diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm
index 02b19909b0..85836ffdf3 100644
--- a/code/modules/reagents/chemistry/reagents/food_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm
@@ -658,10 +658,10 @@
/datum/reagent/consumable/honey/on_mob_life(mob/living/carbon/M)
M.reagents.add_reagent(/datum/reagent/consumable/sugar,3)
if(prob(55))
- M.adjustBruteLoss(-1*REM, 0)
- M.adjustFireLoss(-1*REM, 0)
- M.adjustOxyLoss(-1*REM, 0)
- M.adjustToxLoss(-1*REM, 0, TRUE) //heals TOXINLOVERs
+ M.adjustBruteLoss(-1*REAGENTS_EFFECT_MULTIPLIER, 0)
+ M.adjustFireLoss(-1*REAGENTS_EFFECT_MULTIPLIER, 0)
+ M.adjustOxyLoss(-1*REAGENTS_EFFECT_MULTIPLIER, 0)
+ M.adjustToxLoss(-1*REAGENTS_EFFECT_MULTIPLIER, 0, TRUE) //heals TOXINLOVERs
..()
/datum/reagent/consumable/honey/reaction_mob(mob/living/M, method=TOUCH, reac_volume)
@@ -746,9 +746,9 @@
. = 1
if(prob(20))
M.losebreath += 4
- M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 2*REM, 150)
- M.adjustToxLoss(3*REM,0)
- M.adjustStaminaLoss(10*REM,0)
+ M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 2*REAGENTS_EFFECT_MULTIPLIER, 150)
+ M.adjustToxLoss(3*REAGENTS_EFFECT_MULTIPLIER,0)
+ M.adjustStaminaLoss(10*REAGENTS_EFFECT_MULTIPLIER,0)
M.blur_eyes(5)
. = TRUE
..()
@@ -778,8 +778,8 @@
/datum/reagent/consumable/vitfro/on_mob_life(mob/living/carbon/M)
if(prob(80))
- M.adjustBruteLoss(-1*REM, 0)
- M.adjustFireLoss(-1*REM, 0)
+ M.adjustBruteLoss(-1*REAGENTS_EFFECT_MULTIPLIER, 0)
+ M.adjustFireLoss(-1*REAGENTS_EFFECT_MULTIPLIER, 0)
. = TRUE
..()
@@ -804,7 +804,7 @@
var/mob/living/carbon/C = M
var/obj/item/organ/stomach/ethereal/stomach = C.getorganslot(ORGAN_SLOT_STOMACH)
if(istype(stomach))
- stomach.adjust_charge(reac_volume * REM)
+ stomach.adjust_charge(reac_volume * REAGENTS_EFFECT_MULTIPLIER)
/datum/reagent/consumable/liquidelectricity/on_mob_life(mob/living/carbon/M)
if(prob(25) && !isethereal(M))
diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
index 72a9779726..e1f8d5366c 100644
--- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
@@ -56,7 +56,7 @@
mytray.visible_message("Nothing happens...")
/datum/reagent/medicine/adminordrazine/on_mob_life(mob/living/carbon/M)
- M.reagents.remove_all_type(/datum/reagent/toxin, 5*REM, 0, 1)
+ M.reagents.remove_all_type(/datum/reagent/toxin, 5*REAGENTS_EFFECT_MULTIPLIER, 0, 1)
M.setCloneLoss(0, 0)
M.setOxyLoss(0, 0)
M.radiation = 0
@@ -299,7 +299,7 @@
..()
/datum/reagent/medicine/silver_sulfadiazine/on_mob_life(mob/living/carbon/M)
- M.adjustFireLoss(-2*REM, 0)
+ M.adjustFireLoss(-2*REAGENTS_EFFECT_MULTIPLIER, 0)
..()
. = 1
@@ -309,7 +309,7 @@
. = 1
/datum/reagent/medicine/silver_sulfadiazine/overdose_process(mob/living/M)
- M.adjustFireLoss(2*REM, 0)
+ M.adjustFireLoss(2*REAGENTS_EFFECT_MULTIPLIER, 0)
var/obj/item/organ/liver/L = M.getorganslot(ORGAN_SLOT_LIVER)
if(L)
L.applyOrganDamage(1)
@@ -328,15 +328,15 @@
/datum/reagent/medicine/oxandrolone/on_mob_life(mob/living/carbon/M)
if(M.getFireLoss() > 25)
- M.adjustFireLoss(-4*REM, 0) //Twice as effective as silver sulfadiazine for severe burns
+ M.adjustFireLoss(-4*REAGENTS_EFFECT_MULTIPLIER, 0) //Twice as effective as silver sulfadiazine for severe burns
else
- M.adjustFireLoss(-0.5*REM, 0) //But only a quarter as effective for more minor ones
+ M.adjustFireLoss(-0.5*REAGENTS_EFFECT_MULTIPLIER, 0) //But only a quarter as effective for more minor ones
..()
. = 1
/datum/reagent/medicine/oxandrolone/overdose_process(mob/living/M)
if(M.getFireLoss()) //It only makes existing burns worse
- M.adjustFireLoss(4.5*REM, 0) // it's going to be healing either 4 or 0.5
+ M.adjustFireLoss(4.5*REAGENTS_EFFECT_MULTIPLIER, 0) // it's going to be healing either 4 or 0.5
. = 1
..()
@@ -371,7 +371,7 @@
G.use(reac_volume)
/datum/reagent/medicine/styptic_powder/on_mob_life(mob/living/carbon/M)
- M.adjustBruteLoss(-2*REM, 0)
+ M.adjustBruteLoss(-2*REAGENTS_EFFECT_MULTIPLIER, 0)
..()
. = 1
@@ -381,7 +381,7 @@
. = 1
/datum/reagent/medicine/styptic_powder/overdose_process(mob/living/M)
- M.adjustBruteLoss(2*REM, 0)
+ M.adjustBruteLoss(2*REAGENTS_EFFECT_MULTIPLIER, 0)
var/obj/item/organ/liver/L = M.getorganslot(ORGAN_SLOT_LIVER)
if(L)
L.applyOrganDamage(1)
@@ -403,8 +403,8 @@
/datum/reagent/medicine/salglu_solution/on_mob_life(mob/living/carbon/human/M)
if(prob(33))
- M.adjustBruteLoss(-0.5*REM, 0)
- M.adjustFireLoss(-0.5*REM, 0)
+ M.adjustBruteLoss(-0.5*REAGENTS_EFFECT_MULTIPLIER, 0)
+ M.adjustFireLoss(-0.5*REAGENTS_EFFECT_MULTIPLIER, 0)
. = TRUE
if((HAS_TRAIT(M, TRAIT_NOMARROW)))
return ..()
@@ -414,10 +414,10 @@
if(M.functional_blood() < maximum_reachable) //Can only up to double your effective blood level.
var/new_blood_level = min(volume * 5, maximum_reachable)
last_added = new_blood_level
- M.adjust_integration_blood(new_blood_level + (extra_regen * REM))
+ M.adjust_integration_blood(new_blood_level + (extra_regen * REAGENTS_EFFECT_MULTIPLIER))
if(prob(33))
- M.adjustBruteLoss(-0.5*REM, 0)
- M.adjustFireLoss(-0.5*REM, 0)
+ M.adjustBruteLoss(-0.5*REAGENTS_EFFECT_MULTIPLIER, 0)
+ M.adjustFireLoss(-0.5*REAGENTS_EFFECT_MULTIPLIER, 0)
. = TRUE
..()
@@ -436,8 +436,8 @@
holder.add_reagent(/datum/reagent/consumable/sugar, 1)
holder.remove_reagent(/datum/reagent/medicine/salglu_solution, 0.5)
if(prob(33))
- M.adjustBruteLoss(0.5*REM, 0)
- M.adjustFireLoss(0.5*REM, 0)
+ M.adjustBruteLoss(0.5*REAGENTS_EFFECT_MULTIPLIER, 0)
+ M.adjustFireLoss(0.5*REAGENTS_EFFECT_MULTIPLIER, 0)
. = TRUE
..()
@@ -452,9 +452,9 @@
/datum/reagent/medicine/mine_salve/on_mob_life(mob/living/carbon/C)
C.hal_screwyhud = SCREWYHUD_HEALTHY
- C.adjustBruteLoss(-0.25*REM, 0)
- C.adjustFireLoss(-0.25*REM, 0)
- C.adjustStaminaLoss(-0.5*REM, 0)
+ C.adjustBruteLoss(-0.25*REAGENTS_EFFECT_MULTIPLIER, 0)
+ C.adjustFireLoss(-0.25*REAGENTS_EFFECT_MULTIPLIER, 0)
+ C.adjustStaminaLoss(-0.5*REAGENTS_EFFECT_MULTIPLIER, 0)
..()
return TRUE
@@ -531,7 +531,7 @@
pH = 5
/datum/reagent/medicine/charcoal/on_mob_life(mob/living/carbon/M)
- M.adjustToxLoss(-2*REM, 0)
+ M.adjustToxLoss(-2*REAGENTS_EFFECT_MULTIPLIER, 0)
. = 1
for(var/A in M.reagents.reagent_list)
var/datum/reagent/R = A
@@ -551,18 +551,18 @@
var/healing = 0.5
/datum/reagent/medicine/omnizine/on_mob_life(mob/living/carbon/M)
- M.adjustToxLoss(-healing*REM, 0)
- M.adjustOxyLoss(-healing*REM, 0)
- M.adjustBruteLoss(-healing*REM, 0)
- M.adjustFireLoss(-healing*REM, 0)
+ M.adjustToxLoss(-healing*REAGENTS_EFFECT_MULTIPLIER, 0)
+ M.adjustOxyLoss(-healing*REAGENTS_EFFECT_MULTIPLIER, 0)
+ M.adjustBruteLoss(-healing*REAGENTS_EFFECT_MULTIPLIER, 0)
+ M.adjustFireLoss(-healing*REAGENTS_EFFECT_MULTIPLIER, 0)
..()
. = 1
/datum/reagent/medicine/omnizine/overdose_process(mob/living/M)
- M.adjustToxLoss(1.5*REM, 0)
- M.adjustOxyLoss(1.5*REM, 0)
- M.adjustBruteLoss(1.5*REM, 0)
- M.adjustFireLoss(1.5*REM, 0)
+ M.adjustToxLoss(1.5*REAGENTS_EFFECT_MULTIPLIER, 0)
+ M.adjustOxyLoss(1.5*REAGENTS_EFFECT_MULTIPLIER, 0)
+ M.adjustBruteLoss(1.5*REAGENTS_EFFECT_MULTIPLIER, 0)
+ M.adjustFireLoss(1.5*REAGENTS_EFFECT_MULTIPLIER, 0)
..()
. = 1
@@ -587,7 +587,7 @@
if(R != src)
M.reagents.remove_reagent(R.type,2.5)
if(M.health > 20)
- M.adjustToxLoss(2.5*REM, 0)
+ M.adjustToxLoss(2.5*REAGENTS_EFFECT_MULTIPLIER, 0)
. = 1
..()
@@ -630,7 +630,7 @@
/datum/reagent/medicine/pen_acid/on_mob_life(mob/living/carbon/M)
M.radiation -= max(M.radiation-RAD_MOB_SAFE, 0)/50
- M.adjustToxLoss(-2*REM, 0, healtoxinlover)
+ M.adjustToxLoss(-2*REAGENTS_EFFECT_MULTIPLIER, 0, healtoxinlover)
for(var/A in M.reagents.reagent_list)
var/datum/reagent/R = A
if(R != src)
@@ -659,15 +659,15 @@
/datum/reagent/medicine/sal_acid/on_mob_life(mob/living/carbon/M)
if(M.getBruteLoss() > 25)
- M.adjustBruteLoss(-4*REM, 0) //Twice as effective as styptic powder for severe bruising
+ M.adjustBruteLoss(-4*REAGENTS_EFFECT_MULTIPLIER, 0) //Twice as effective as styptic powder for severe bruising
else
- M.adjustBruteLoss(-0.5*REM, 0) //But only a quarter as effective for more minor ones
+ M.adjustBruteLoss(-0.5*REAGENTS_EFFECT_MULTIPLIER, 0) //But only a quarter as effective for more minor ones
..()
. = 1
/datum/reagent/medicine/sal_acid/overdose_process(mob/living/M)
if(M.getBruteLoss()) //It only makes existing bruises worse
- M.adjustBruteLoss(4.5*REM, 0) // it's going to be healing either 4 or 0.5
+ M.adjustBruteLoss(4.5*REAGENTS_EFFECT_MULTIPLIER, 0) // it's going to be healing either 4 or 0.5
. = 1
..()
@@ -680,7 +680,7 @@
pH = 2
/datum/reagent/medicine/salbutamol/on_mob_life(mob/living/carbon/M)
- M.adjustOxyLoss(-3*REM, 0)
+ M.adjustOxyLoss(-3*REAGENTS_EFFECT_MULTIPLIER, 0)
if(M.losebreath >= 4)
M.losebreath -= 2
M.Jitter(5)
@@ -696,11 +696,11 @@
pH = 11
/datum/reagent/medicine/perfluorodecalin/on_mob_life(mob/living/carbon/human/M)
- M.adjustOxyLoss(-12*REM, 0)
+ M.adjustOxyLoss(-12*REAGENTS_EFFECT_MULTIPLIER, 0)
M.silent = max(M.silent, 5)
if(prob(33))
- M.adjustBruteLoss(-0.5*REM, 0)
- M.adjustFireLoss(-0.5*REM, 0)
+ M.adjustBruteLoss(-0.5*REAGENTS_EFFECT_MULTIPLIER, 0)
+ M.adjustFireLoss(-0.5*REAGENTS_EFFECT_MULTIPLIER, 0)
..()
return TRUE
@@ -731,8 +731,8 @@
// to_chat(M, span_notice("Your hands spaz out and you drop what you were holding!"))
// M.Jitter(10)
- M.AdjustAllImmobility(-20 * REM * delta_time)
- M.adjustStaminaLoss(-1 * REM * delta_time, FALSE)
+ M.AdjustAllImmobility(-20 * REAGENTS_EFFECT_MULTIPLIER * delta_time)
+ M.adjustStaminaLoss(-1 * REAGENTS_EFFECT_MULTIPLIER * delta_time, FALSE)
..()
return TRUE
@@ -754,28 +754,28 @@
/datum/reagent/medicine/ephedrine/addiction_act_stage1(mob/living/M)
if(prob(33))
- M.adjustToxLoss(2*REM, 0)
+ M.adjustToxLoss(2*REAGENTS_EFFECT_MULTIPLIER, 0)
M.losebreath += 2
. = 1
..()
/datum/reagent/medicine/ephedrine/addiction_act_stage2(mob/living/M)
if(prob(33))
- M.adjustToxLoss(3*REM, 0)
+ M.adjustToxLoss(3*REAGENTS_EFFECT_MULTIPLIER, 0)
M.losebreath += 3
. = 1
..()
/datum/reagent/medicine/ephedrine/addiction_act_stage3(mob/living/M)
if(prob(33))
- M.adjustToxLoss(4*REM, 0)
+ M.adjustToxLoss(4*REAGENTS_EFFECT_MULTIPLIER, 0)
M.losebreath += 4
. = 1
..()
/datum/reagent/medicine/ephedrine/addiction_act_stage4(mob/living/M)
if(prob(33))
- M.adjustToxLoss(5*REM, 0)
+ M.adjustToxLoss(5*REAGENTS_EFFECT_MULTIPLIER, 0)
M.losebreath += 5
. = 1
..()
@@ -841,7 +841,7 @@
/datum/reagent/medicine/morphine/addiction_act_stage2(mob/living/M)
if(prob(33))
M.drop_all_held_items()
- M.adjustToxLoss(1*REM, 0)
+ M.adjustToxLoss(1*REAGENTS_EFFECT_MULTIPLIER, 0)
. = 1
M.Dizzy(3)
M.Jitter(3)
@@ -850,7 +850,7 @@
/datum/reagent/medicine/morphine/addiction_act_stage3(mob/living/M)
if(prob(33))
M.drop_all_held_items()
- M.adjustToxLoss(2*REM, 0)
+ M.adjustToxLoss(2*REAGENTS_EFFECT_MULTIPLIER, 0)
. = 1
M.Dizzy(4)
M.Jitter(4)
@@ -859,7 +859,7 @@
/datum/reagent/medicine/morphine/addiction_act_stage4(mob/living/M)
if(prob(33))
M.drop_all_held_items()
- M.adjustToxLoss(3*REM, 0)
+ M.adjustToxLoss(3*REAGENTS_EFFECT_MULTIPLIER, 0)
. = 1
M.Dizzy(5)
M.Jitter(5)
@@ -907,10 +907,10 @@
/datum/reagent/medicine/atropine/on_mob_life(mob/living/carbon/M)
if(M.health < 0)
- M.adjustToxLoss(-2*REM, 0)
- M.adjustBruteLoss(-2*REM, 0)
- M.adjustFireLoss(-2*REM, 0)
- M.adjustOxyLoss(-5*REM, 0)
+ M.adjustToxLoss(-2*REAGENTS_EFFECT_MULTIPLIER, 0)
+ M.adjustBruteLoss(-2*REAGENTS_EFFECT_MULTIPLIER, 0)
+ M.adjustFireLoss(-2*REAGENTS_EFFECT_MULTIPLIER, 0)
+ M.adjustOxyLoss(-5*REAGENTS_EFFECT_MULTIPLIER, 0)
. = 1
M.losebreath = 0
if(prob(20))
@@ -919,7 +919,7 @@
..()
/datum/reagent/medicine/atropine/overdose_process(mob/living/M)
- M.adjustToxLoss(0.5*REM, 0)
+ M.adjustToxLoss(0.5*REAGENTS_EFFECT_MULTIPLIER, 0)
. = 1
M.Dizzy(1)
M.Jitter(1)
@@ -936,16 +936,16 @@
/datum/reagent/medicine/epinephrine/on_mob_life(mob/living/carbon/M)
if(M.health < 0)
- M.adjustToxLoss(-0.5*REM, 0)
- M.adjustBruteLoss(-0.5*REM, 0)
- M.adjustFireLoss(-0.5*REM, 0)
+ M.adjustToxLoss(-0.5*REAGENTS_EFFECT_MULTIPLIER, 0)
+ M.adjustBruteLoss(-0.5*REAGENTS_EFFECT_MULTIPLIER, 0)
+ M.adjustFireLoss(-0.5*REAGENTS_EFFECT_MULTIPLIER, 0)
if(M.oxyloss > 35)
M.setOxyLoss(35, 0)
if(M.losebreath >= 4)
M.losebreath -= 2
if(M.losebreath < 0)
M.losebreath = 0
- M.adjustStaminaLoss(-0.5*REM, 0)
+ M.adjustStaminaLoss(-0.5*REAGENTS_EFFECT_MULTIPLIER, 0)
. = 1
if(prob(20))
M.AdjustAllImmobility(-20, 0)
@@ -954,8 +954,8 @@
/datum/reagent/medicine/epinephrine/overdose_process(mob/living/M)
if(prob(33))
- M.adjustStaminaLoss(2.5*REM, 0)
- M.adjustToxLoss(1*REM, 0)
+ M.adjustStaminaLoss(2.5*REAGENTS_EFFECT_MULTIPLIER, 0)
+ M.adjustToxLoss(1*REAGENTS_EFFECT_MULTIPLIER, 0)
M.losebreath++
. = 1
..()
@@ -1021,8 +1021,8 @@
/datum/reagent/medicine/strange_reagent/on_mob_life(mob/living/carbon/M)
- M.adjustBruteLoss(0.5*REM, 0)
- M.adjustFireLoss(0.5*REM, 0)
+ M.adjustBruteLoss(0.5*REAGENTS_EFFECT_MULTIPLIER, 0)
+ M.adjustFireLoss(0.5*REAGENTS_EFFECT_MULTIPLIER, 0)
..()
. = 1
@@ -1033,7 +1033,7 @@
pH = 10.4
/datum/reagent/medicine/mannitol/on_mob_life(mob/living/carbon/C)
- C.adjustOrganLoss(ORGAN_SLOT_BRAIN, -2*REM)
+ C.adjustOrganLoss(ORGAN_SLOT_BRAIN, -2*REAGENTS_EFFECT_MULTIPLIER)
if(prob(10))
C.cure_trauma_type(resilience = TRAUMA_RESILIENCE_BASIC)
..()
@@ -1091,8 +1091,8 @@
M.drowsyness = 0
M.slurring = 0
M.confused = 0
- M.reagents.remove_all_type(/datum/reagent/consumable/ethanol, 3*REM, 0, 1)
- M.adjustToxLoss(-0.2*REM, 0)
+ M.reagents.remove_all_type(/datum/reagent/consumable/ethanol, 3*REAGENTS_EFFECT_MULTIPLIER, 0, 1)
+ M.adjustToxLoss(-0.2*REAGENTS_EFFECT_MULTIPLIER, 0)
if(ishuman(M))
var/mob/living/carbon/human/H = M
H.drunkenness = max(H.drunkenness - 10, 0)
@@ -1120,20 +1120,20 @@
/datum/reagent/medicine/stimulants/on_mob_life(mob/living/carbon/M)
if(M.health < 50 && M.health > 0)
- M.adjustOxyLoss(-1*REM, FALSE)
- M.adjustToxLoss(-1*REM, FALSE)
- M.adjustBruteLoss(-1*REM, FALSE)
- M.adjustFireLoss(-1*REM, FALSE)
+ M.adjustOxyLoss(-1*REAGENTS_EFFECT_MULTIPLIER, FALSE)
+ M.adjustToxLoss(-1*REAGENTS_EFFECT_MULTIPLIER, FALSE)
+ M.adjustBruteLoss(-1*REAGENTS_EFFECT_MULTIPLIER, FALSE)
+ M.adjustFireLoss(-1*REAGENTS_EFFECT_MULTIPLIER, FALSE)
M.AdjustAllImmobility(-60, FALSE)
M.AdjustUnconscious(-60, FALSE)
- M.adjustStaminaLoss(-20*REM, FALSE)
+ M.adjustStaminaLoss(-20*REAGENTS_EFFECT_MULTIPLIER, FALSE)
..()
. = 1
/datum/reagent/medicine/stimulants/overdose_process(mob/living/M)
if(prob(33))
- M.adjustStaminaLoss(2.5*REM, FALSE)
- M.adjustToxLoss(1*REM, FALSE)
+ M.adjustStaminaLoss(2.5*REAGENTS_EFFECT_MULTIPLIER, FALSE)
+ M.adjustToxLoss(1*REAGENTS_EFFECT_MULTIPLIER, FALSE)
M.losebreath++
. = 1
..()
@@ -1162,12 +1162,12 @@
pH = 5
/datum/reagent/medicine/bicaridine/on_mob_life(mob/living/carbon/M)
- M.adjustBruteLoss(-2*REM, FALSE)
+ M.adjustBruteLoss(-2*REAGENTS_EFFECT_MULTIPLIER, FALSE)
..()
. = 1
/datum/reagent/medicine/bicaridine/overdose_process(mob/living/M)
- M.adjustBruteLoss(4*REM, FALSE)
+ M.adjustBruteLoss(4*REAGENTS_EFFECT_MULTIPLIER, FALSE)
..()
. = 1
@@ -1180,12 +1180,12 @@
pH = 9.7
/datum/reagent/medicine/dexalin/on_mob_life(mob/living/carbon/M)
- M.adjustOxyLoss(-2*REM, FALSE)
+ M.adjustOxyLoss(-2*REAGENTS_EFFECT_MULTIPLIER, FALSE)
..()
. = 1
/datum/reagent/medicine/dexalin/overdose_process(mob/living/M)
- M.adjustOxyLoss(4*REM, FALSE)
+ M.adjustOxyLoss(4*REAGENTS_EFFECT_MULTIPLIER, FALSE)
..()
. = 1
@@ -1198,12 +1198,12 @@
pH = 9
/datum/reagent/medicine/kelotane/on_mob_life(mob/living/carbon/M)
- M.adjustFireLoss(-2*REM, FALSE)
+ M.adjustFireLoss(-2*REAGENTS_EFFECT_MULTIPLIER, FALSE)
..()
. = 1
/datum/reagent/medicine/kelotane/overdose_process(mob/living/M)
- M.adjustFireLoss(4*REM, FALSE)
+ M.adjustFireLoss(4*REAGENTS_EFFECT_MULTIPLIER, FALSE)
..()
. = 1
@@ -1217,14 +1217,14 @@
pH = 10
/datum/reagent/medicine/antitoxin/on_mob_life(mob/living/carbon/M)
- M.adjustToxLoss(-2*REM, FALSE)
+ M.adjustToxLoss(-2*REAGENTS_EFFECT_MULTIPLIER, FALSE)
for(var/datum/reagent/toxin/R in M.reagents.reagent_list)
M.reagents.remove_reagent(R.type,1)
..()
. = 1
/datum/reagent/medicine/antitoxin/overdose_process(mob/living/M)
- M.adjustToxLoss(4*REM, FALSE) // End result is 2 toxin loss taken, because it heals 2 and then removes 4.
+ M.adjustToxLoss(4*REAGENTS_EFFECT_MULTIPLIER, FALSE) // End result is 2 toxin loss taken, because it heals 2 and then removes 4.
..()
. = 1
@@ -1255,18 +1255,18 @@
/datum/reagent/medicine/tricordrazine/on_mob_life(mob/living/carbon/M)
if(prob(80))
- M.adjustBruteLoss(-1*REM, FALSE)
- M.adjustFireLoss(-1*REM, FALSE)
- M.adjustOxyLoss(-1*REM, FALSE)
- M.adjustToxLoss(-1*REM, FALSE)
+ M.adjustBruteLoss(-1*REAGENTS_EFFECT_MULTIPLIER, FALSE)
+ M.adjustFireLoss(-1*REAGENTS_EFFECT_MULTIPLIER, FALSE)
+ M.adjustOxyLoss(-1*REAGENTS_EFFECT_MULTIPLIER, FALSE)
+ M.adjustToxLoss(-1*REAGENTS_EFFECT_MULTIPLIER, FALSE)
. = 1
..()
/datum/reagent/medicine/tricordrazine/overdose_process(mob/living/M)
- M.adjustToxLoss(2*REM, FALSE)
- M.adjustOxyLoss(2*REM, FALSE)
- M.adjustBruteLoss(2*REM, FALSE)
- M.adjustFireLoss(2*REM, FALSE)
+ M.adjustToxLoss(2*REAGENTS_EFFECT_MULTIPLIER, FALSE)
+ M.adjustOxyLoss(2*REAGENTS_EFFECT_MULTIPLIER, FALSE)
+ M.adjustBruteLoss(2*REAGENTS_EFFECT_MULTIPLIER, FALSE)
+ M.adjustFireLoss(2*REAGENTS_EFFECT_MULTIPLIER, FALSE)
..()
. = 1
@@ -1279,10 +1279,10 @@
value = REAGENT_VALUE_COMMON
/datum/reagent/medicine/regen_jelly/on_mob_life(mob/living/carbon/M)
- M.adjustBruteLoss(-1.5*REM, FALSE)
- M.adjustFireLoss(-1.5*REM, FALSE)
- M.adjustOxyLoss(-1.5*REM, FALSE)
- M.adjustToxLoss(-1.5*REM, 0, TRUE) //heals TOXINLOVERs
+ M.adjustBruteLoss(-1.5*REAGENTS_EFFECT_MULTIPLIER, FALSE)
+ M.adjustFireLoss(-1.5*REAGENTS_EFFECT_MULTIPLIER, FALSE)
+ M.adjustOxyLoss(-1.5*REAGENTS_EFFECT_MULTIPLIER, FALSE)
+ M.adjustToxLoss(-1.5*REAGENTS_EFFECT_MULTIPLIER, 0, TRUE) //heals TOXINLOVERs
. = 1
..()
@@ -1295,13 +1295,13 @@
value = REAGENT_VALUE_EXCEPTIONAL
/datum/reagent/medicine/syndicate_nanites/on_mob_life(mob/living/carbon/M)
- M.adjustBruteLoss(-5*REM, FALSE) //A ton of healing - this is a 50 telecrystal investment.
- M.adjustFireLoss(-5*REM, FALSE)
+ M.adjustBruteLoss(-5*REAGENTS_EFFECT_MULTIPLIER, FALSE) //A ton of healing - this is a 50 telecrystal investment.
+ M.adjustFireLoss(-5*REAGENTS_EFFECT_MULTIPLIER, FALSE)
M.adjustOxyLoss(-15, FALSE)
- M.adjustToxLoss(-5*REM, FALSE)
- M.adjustOrganLoss(ORGAN_SLOT_BRAIN, -15*REM)
- M.adjustCloneLoss(-3*REM, FALSE)
- M.adjustStaminaLoss(-25*REM,FALSE)
+ M.adjustToxLoss(-5*REAGENTS_EFFECT_MULTIPLIER, FALSE)
+ M.adjustOrganLoss(ORGAN_SLOT_BRAIN, -15*REAGENTS_EFFECT_MULTIPLIER)
+ M.adjustCloneLoss(-3*REAGENTS_EFFECT_MULTIPLIER, FALSE)
+ M.adjustStaminaLoss(-25*REAGENTS_EFFECT_MULTIPLIER,FALSE)
if(M.blood_volume < (BLOOD_VOLUME_NORMAL*M.blood_ratio))
M.adjust_integration_blood(40) // blood fall out man bad
..()
@@ -1316,13 +1316,13 @@
value = REAGENT_VALUE_VERY_RARE
/datum/reagent/medicine/lesser_syndicate_nanites/on_mob_life(mob/living/carbon/M)
- M.adjustBruteLoss(-2*REM, FALSE)
- M.adjustFireLoss(-2*REM, FALSE)
- M.adjustOxyLoss(-5*REM, FALSE)
- M.adjustToxLoss(-2*REM, FALSE)
- M.adjustOrganLoss(ORGAN_SLOT_BRAIN, -5*REM)
- M.adjustCloneLoss(-1.25*REM, FALSE)
- M.adjustStaminaLoss(-4*REM,FALSE)
+ M.adjustBruteLoss(-2*REAGENTS_EFFECT_MULTIPLIER, FALSE)
+ M.adjustFireLoss(-2*REAGENTS_EFFECT_MULTIPLIER, FALSE)
+ M.adjustOxyLoss(-5*REAGENTS_EFFECT_MULTIPLIER, FALSE)
+ M.adjustToxLoss(-2*REAGENTS_EFFECT_MULTIPLIER, FALSE)
+ M.adjustOrganLoss(ORGAN_SLOT_BRAIN, -5*REAGENTS_EFFECT_MULTIPLIER)
+ M.adjustCloneLoss(-1.25*REAGENTS_EFFECT_MULTIPLIER, FALSE)
+ M.adjustStaminaLoss(-4*REAGENTS_EFFECT_MULTIPLIER,FALSE)
if(M.blood_volume < (BLOOD_VOLUME_NORMAL*M.blood_ratio))
M.adjust_integration_blood(3)
..()
@@ -1340,17 +1340,17 @@
value = REAGENT_VALUE_UNCOMMON
/datum/reagent/medicine/neo_jelly/on_mob_life(mob/living/carbon/M)
- M.adjustBruteLoss(-1.5*REM, FALSE)
- M.adjustFireLoss(-1.5*REM, FALSE)
- M.adjustOxyLoss(-1.5*REM, FALSE)
- M.adjustToxLoss(-1.5*REM, 0, TRUE) //heals TOXINLOVERs
+ M.adjustBruteLoss(-1.5*REAGENTS_EFFECT_MULTIPLIER, FALSE)
+ M.adjustFireLoss(-1.5*REAGENTS_EFFECT_MULTIPLIER, FALSE)
+ M.adjustOxyLoss(-1.5*REAGENTS_EFFECT_MULTIPLIER, FALSE)
+ M.adjustToxLoss(-1.5*REAGENTS_EFFECT_MULTIPLIER, 0, TRUE) //heals TOXINLOVERs
. = 1
..()
/datum/reagent/medicine/neo_jelly/overdose_process(mob/living/M)
- M.adjustOxyLoss(2.6*REM, FALSE)
- M.adjustBruteLoss(3.5*REM, FALSE)
- M.adjustFireLoss(3.5*REM, FALSE)
+ M.adjustOxyLoss(2.6*REAGENTS_EFFECT_MULTIPLIER, FALSE)
+ M.adjustBruteLoss(3.5*REAGENTS_EFFECT_MULTIPLIER, FALSE)
+ M.adjustFireLoss(3.5*REAGENTS_EFFECT_MULTIPLIER, FALSE)
..()
. = 1
@@ -1378,13 +1378,13 @@
myseed.adjust_production(-round(chems.get_reagent_amount(src.type) * 0.5))
/datum/reagent/medicine/earthsblood/on_mob_life(mob/living/carbon/M)
- M.adjustBruteLoss(-3 * REM, FALSE)
- M.adjustFireLoss(-3 * REM, FALSE)
- M.adjustOxyLoss(-15 * REM, FALSE)
- M.adjustToxLoss(-3 * REM, FALSE, TRUE) //Heals TOXINLOVERS
- M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 2 * REM, 150) //This does, after all, come from ambrosia, and the most powerful ambrosia in existence, at that!
- M.adjustCloneLoss(-1 * REM, FALSE)
- M.adjustStaminaLoss(-13 * REM, FALSE)
+ M.adjustBruteLoss(-3 * REAGENTS_EFFECT_MULTIPLIER, FALSE)
+ M.adjustFireLoss(-3 * REAGENTS_EFFECT_MULTIPLIER, FALSE)
+ M.adjustOxyLoss(-15 * REAGENTS_EFFECT_MULTIPLIER, FALSE)
+ M.adjustToxLoss(-3 * REAGENTS_EFFECT_MULTIPLIER, FALSE, TRUE) //Heals TOXINLOVERS
+ M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 2 * REAGENTS_EFFECT_MULTIPLIER, 150) //This does, after all, come from ambrosia, and the most powerful ambrosia in existence, at that!
+ M.adjustCloneLoss(-1 * REAGENTS_EFFECT_MULTIPLIER, FALSE)
+ M.adjustStaminaLoss(-13 * REAGENTS_EFFECT_MULTIPLIER, FALSE)
M.jitteriness = min(max(0, M.jitteriness + 3), 30)
M.druggy = min(max(0, M.druggy + 10), 15) //See above
..()
@@ -1392,7 +1392,7 @@
/datum/reagent/medicine/earthsblood/overdose_process(mob/living/M)
M.hallucination = min(max(0, M.hallucination + 5), 60)
- M.adjustToxLoss(8 * REM, FALSE, TRUE) //Hurts TOXINLOVERS
+ M.adjustToxLoss(8 * REAGENTS_EFFECT_MULTIPLIER, FALSE, TRUE) //Hurts TOXINLOVERS
..()
. = 1
@@ -1414,8 +1414,8 @@
if (M.hallucination >= 5)
M.hallucination -= 5
if(prob(20))
- M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 1*REM, 50)
- M.adjustStaminaLoss(2.5*REM, 0)
+ M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 1*REAGENTS_EFFECT_MULTIPLIER, 50)
+ M.adjustStaminaLoss(2.5*REAGENTS_EFFECT_MULTIPLIER, 0)
..()
return TRUE
@@ -1434,9 +1434,9 @@
return TRUE
/datum/reagent/medicine/lavaland_extract/overdose_process(mob/living/M)
- M.adjustBruteLoss(3*REM, 0)
- M.adjustFireLoss(3*REM, 0)
- M.adjustToxLoss(3*REM, 0)
+ M.adjustBruteLoss(3*REAGENTS_EFFECT_MULTIPLIER, 0)
+ M.adjustFireLoss(3*REAGENTS_EFFECT_MULTIPLIER, 0)
+ M.adjustToxLoss(3*REAGENTS_EFFECT_MULTIPLIER, 0)
..()
return TRUE
@@ -1450,10 +1450,10 @@
/datum/reagent/medicine/changelingadrenaline/on_mob_life(mob/living/carbon/metabolizer, delta_time, times_fired)
..()
- metabolizer.AdjustAllImmobility(-20 * REM * delta_time)
- metabolizer.adjustStaminaLoss(-30 * REM * delta_time, 0)
- metabolizer.Jitter(10 * REM * delta_time)
- metabolizer.Dizzy(10 * REM * delta_time)
+ metabolizer.AdjustAllImmobility(-20 * REAGENTS_EFFECT_MULTIPLIER * delta_time)
+ metabolizer.adjustStaminaLoss(-30 * REAGENTS_EFFECT_MULTIPLIER * delta_time, 0)
+ metabolizer.Jitter(10 * REAGENTS_EFFECT_MULTIPLIER * delta_time)
+ metabolizer.Dizzy(10 * REAGENTS_EFFECT_MULTIPLIER * delta_time)
return TRUE
/datum/reagent/medicine/changelingadrenaline/on_mob_metabolize(mob/living/L)
@@ -1471,7 +1471,7 @@
L.Jitter(0)
/datum/reagent/medicine/changelingadrenaline/overdose_process(mob/living/metabolizer, delta_time, times_fired)
- metabolizer.adjustToxLoss(1 * REM * delta_time, 0)
+ metabolizer.adjustToxLoss(1 * REAGENTS_EFFECT_MULTIPLIER * delta_time, 0)
..()
return TRUE
@@ -1546,7 +1546,7 @@
overdose_threshold = overdose_threshold + rand(-10,10)/10 // for extra fun
M.AdjustAllImmobility(-5, 0)
M.AdjustUnconscious(-5, 0)
- M.adjustStaminaLoss(-1*REM, 0)
+ M.adjustStaminaLoss(-1*REAGENTS_EFFECT_MULTIPLIER, 0)
M.Jitter(1)
metabolization_rate = 0.01 * REAGENTS_METABOLISM * rand(5,20) // randomizes metabolism between 0.02 and 0.08 per tick
. = TRUE
@@ -1566,8 +1566,8 @@
if(prob(50))
M.losebreath++
if(41 to 80)
- M.adjustOxyLoss(0.1*REM, 0)
- M.adjustStaminaLoss(0.1*REM, 0)
+ M.adjustOxyLoss(0.1*REAGENTS_EFFECT_MULTIPLIER, 0)
+ M.adjustStaminaLoss(0.1*REAGENTS_EFFECT_MULTIPLIER, 0)
M.jitteriness = min(M.jitteriness+1, 20)
M.stuttering = min(M.stuttering+1, 20)
M.Dizzy(10)
@@ -1579,12 +1579,12 @@
M.DefaultCombatKnockdown(20, 1, 0) // you should be in a bad spot at this point unless epipen has been used
if(81)
to_chat(M, "You feel too exhausted to continue!") // at this point you will eventually die unless you get charcoal
- M.adjustOxyLoss(0.1*REM, 0)
- M.adjustStaminaLoss(0.1*REM, 0)
+ M.adjustOxyLoss(0.1*REAGENTS_EFFECT_MULTIPLIER, 0)
+ M.adjustStaminaLoss(0.1*REAGENTS_EFFECT_MULTIPLIER, 0)
if(82 to INFINITY)
M.Sleeping(100, 0, TRUE)
- M.adjustOxyLoss(1.5*REM, 0)
- M.adjustStaminaLoss(1.5*REM, 0)
+ M.adjustOxyLoss(1.5*REAGENTS_EFFECT_MULTIPLIER, 0)
+ M.adjustStaminaLoss(1.5*REAGENTS_EFFECT_MULTIPLIER, 0)
..()
return TRUE
@@ -1674,7 +1674,7 @@
value = REAGENT_VALUE_UNCOMMON // while it's 'rare', it can be milked from the wisdom cow
/datum/reagent/medicine/liquid_wisdom/on_mob_life(mob/living/carbon/C) //slightly stronger mannitol, from the wisdom cow
- C.adjustOrganLoss(ORGAN_SLOT_BRAIN, -3*REM)
+ C.adjustOrganLoss(ORGAN_SLOT_BRAIN, -3*REAGENTS_EFFECT_MULTIPLIER)
if(prob(20))
C.cure_trauma_type(resilience = TRAUMA_RESILIENCE_BASIC)
if(prob(3))
diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm
index bf93c933de..a378880567 100644
--- a/code/modules/reagents/chemistry/reagents/other_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm
@@ -58,7 +58,7 @@
var/blood_id = C.get_blood_id()
if((blood_id in GLOB.blood_reagent_types) && !HAS_TRAIT(C, TRAIT_NOMARROW))
if(!data || !(data["blood_type"] in get_safe_blood(C.dna.blood_type))) //we only care about bloodtype here because this is where the poisoning should be
- C.adjustToxLoss(rand(2,8)*REM, TRUE, TRUE) //forced to ensure people don't use it to gain beneficial toxin as slime person
+ C.adjustToxLoss(rand(2,8)*REAGENTS_EFFECT_MULTIPLIER, TRUE, TRUE) //forced to ensure people don't use it to gain beneficial toxin as slime person
..()
/datum/reagent/blood/reaction_obj(obj/O, volume)
@@ -175,10 +175,10 @@
if(prob(10))
if(M.dna?.species?.exotic_bloodtype != "GEL")
to_chat(M, "Your insides are burning!")
- M.adjustToxLoss(rand(20,60)*REM, 0)
+ M.adjustToxLoss(rand(20,60)*REAGENTS_EFFECT_MULTIPLIER, 0)
. = 1
else if(prob(40) && isjellyperson(M))
- M.heal_bodypart_damage(2*REM)
+ M.heal_bodypart_damage(2*REAGENTS_EFFECT_MULTIPLIER)
. = 1
..()
@@ -1019,7 +1019,7 @@
mytray.adjustWeeds(-rand(1,3))
/datum/reagent/chlorine/on_mob_life(mob/living/carbon/M)
- M.take_bodypart_damage(1*REM, 0, 0, 0)
+ M.take_bodypart_damage(1*REAGENTS_EFFECT_MULTIPLIER, 0, 0, 0)
. = 1
..()
@@ -1041,7 +1041,7 @@
mytray.adjustWeeds(-rand(1,4))
/datum/reagent/fluorine/on_mob_life(mob/living/carbon/M)
- M.adjustToxLoss(1*REM, 0)
+ M.adjustToxLoss(1*REAGENTS_EFFECT_MULTIPLIER, 0)
. = 1
..()
@@ -1098,7 +1098,7 @@
mytray.adjustToxic(round(chems.get_reagent_amount(src.type) * 1))
/datum/reagent/radium/on_mob_life(mob/living/carbon/M)
- M.apply_effect(2*REM/M.metabolism_efficiency,EFFECT_IRRADIATE,0)
+ M.apply_effect(2*REAGENTS_EFFECT_MULTIPLIER/M.metabolism_efficiency,EFFECT_IRRADIATE,0)
..()
/datum/reagent/radium/reaction_turf(turf/T, reac_volume)
@@ -1398,7 +1398,7 @@
/datum/reagent/impedrezene/on_mob_life(mob/living/carbon/M)
M.jitteriness = max(M.jitteriness-5,0)
if(prob(80))
- M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 2*REM)
+ M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 2*REAGENTS_EFFECT_MULTIPLIER)
if(prob(50))
M.drowsyness = max(M.drowsyness, 3)
if(prob(10))
@@ -1574,7 +1574,7 @@
..()
/datum/reagent/stimulum/on_mob_life(mob/living/carbon/M)
- M.adjustStaminaLoss(-2*REM, 0)
+ M.adjustStaminaLoss(-2*REAGENTS_EFFECT_MULTIPLIER, 0)
current_cycle++
holder.remove_reagent(type, 0.99) //Gives time for the next tick of life().
. = TRUE //Update status effects.
@@ -1687,7 +1687,7 @@
/datum/reagent/plantnutriment/on_mob_life(mob/living/carbon/M)
if(prob(tox_prob))
- M.adjustToxLoss(1*REM, 0)
+ M.adjustToxLoss(1*REAGENTS_EFFECT_MULTIPLIER, 0)
. = 1
..()
@@ -2533,7 +2533,7 @@
var/obj/item/bodypart/wounded_part = W.limb
if(wounded_part)
wounded_part.heal_damage(0.25, 0.25)
- M.adjustStaminaLoss(-0.25*REM) // the more wounds, the more stamina regen
+ M.adjustStaminaLoss(-0.25*REAGENTS_EFFECT_MULTIPLIER) // the more wounds, the more stamina regen
..()
/datum/reagent/eldritch
diff --git a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm
index 7dd8cac452..7cefc48159 100644
--- a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm
@@ -18,7 +18,7 @@
/datum/reagent/toxin/on_mob_life(mob/living/carbon/M)
if(toxpwr)
- M.adjustToxLoss(toxpwr*REM, 0)
+ M.adjustToxLoss(toxpwr*REAGENTS_EFFECT_MULTIPLIER, 0)
. = TRUE
..()
@@ -79,7 +79,7 @@
/datum/reagent/toxin/plasma/on_mob_life(mob/living/carbon/C)
if(holder.has_reagent(/datum/reagent/medicine/epinephrine))
- holder.remove_reagent(/datum/reagent/medicine/epinephrine, 2*REM)
+ holder.remove_reagent(/datum/reagent/medicine/epinephrine, 2*REAGENTS_EFFECT_MULTIPLIER)
C.adjustPlasma(20)
return ..()
@@ -136,10 +136,10 @@
/datum/reagent/toxin/slimejelly/on_mob_life(mob/living/carbon/M)
if(prob(10))
to_chat(M, "Your insides are burning!")
- M.adjustToxLoss(rand(20,60)*REM, 0)
+ M.adjustToxLoss(rand(20,60)*REAGENTS_EFFECT_MULTIPLIER, 0)
. = 1
else if(prob(40))
- M.heal_bodypart_damage(5*REM)
+ M.heal_bodypart_damage(5*REAGENTS_EFFECT_MULTIPLIER)
. = 1
..()
@@ -191,7 +191,7 @@
..()
/datum/reagent/toxin/zombiepowder/reaction_mob(mob/living/L, method=TOUCH, reac_volume)
- L.adjustOxyLoss(0.5*REM, 0)
+ L.adjustOxyLoss(0.5*REAGENTS_EFFECT_MULTIPLIER, 0)
if(method == INGEST)
fakedeath_active = TRUE
L.fakedeath(type)
@@ -230,7 +230,7 @@
..()
/datum/reagent/toxin/ghoulpowder/on_mob_life(mob/living/carbon/M)
- M.adjustOxyLoss(1*REM, 0)
+ M.adjustOxyLoss(1*REAGENTS_EFFECT_MULTIPLIER, 0)
..()
. = 1
@@ -365,7 +365,7 @@
. = 1
if(51 to INFINITY)
M.Sleeping(40, 0)
- M.adjustToxLoss((current_cycle - 50)*REM, 0)
+ M.adjustToxLoss((current_cycle - 50)*REAGENTS_EFFECT_MULTIPLIER, 0)
. = 1
..()
@@ -387,7 +387,7 @@
M.Sleeping(40, 0)
if(51 to INFINITY)
M.Sleeping(40, 0)
- M.adjustToxLoss((current_cycle - 50)*REM, 0)
+ M.adjustToxLoss((current_cycle - 50)*REAGENTS_EFFECT_MULTIPLIER, 0)
return ..()
/datum/reagent/toxin/coffeepowder
@@ -437,7 +437,7 @@
value = REAGENT_VALUE_UNCOMMON
/datum/reagent/toxin/staminatoxin/on_mob_life(mob/living/carbon/M)
- M.adjustStaminaLoss(REM * data, 0)
+ M.adjustStaminaLoss(REAGENTS_EFFECT_MULTIPLIER * data, 0)
data = max(data - 1, 5)
..()
. = 1
@@ -478,14 +478,14 @@
if(4)
if(prob(75))
to_chat(M, "You scratch at an itch.")
- M.adjustBruteLoss(2*REM, 0)
+ M.adjustBruteLoss(2*REAGENTS_EFFECT_MULTIPLIER, 0)
. = 1
..()
/datum/reagent/toxin/histamine/overdose_process(mob/living/M)
- M.adjustOxyLoss(2*REM, 0)
- M.adjustBruteLoss(2*REM, 0)
- M.adjustToxLoss(2*REM, 0)
+ M.adjustOxyLoss(2*REAGENTS_EFFECT_MULTIPLIER, 0)
+ M.adjustBruteLoss(2*REAGENTS_EFFECT_MULTIPLIER, 0)
+ M.adjustToxLoss(2*REAGENTS_EFFECT_MULTIPLIER, 0)
..()
. = 1
@@ -515,7 +515,7 @@
/datum/reagent/toxin/venom/on_mob_life(mob/living/carbon/M)
toxpwr = 0.2*volume
- M.adjustBruteLoss((0.3*volume)*REM, 0)
+ M.adjustBruteLoss((0.3*volume)*REAGENTS_EFFECT_MULTIPLIER, 0)
. = 1
if(prob(15))
M.reagents.add_reagent(/datum/reagent/toxin/histamine, pick(5,10))
@@ -532,9 +532,9 @@
toxpwr = 0
/datum/reagent/toxin/fentanyl/on_mob_life(mob/living/carbon/M)
- M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 3*REM, 150)
+ M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 3*REAGENTS_EFFECT_MULTIPLIER, 150)
if(M.toxloss <= 60)
- M.adjustToxLoss(1*REM, 0)
+ M.adjustToxLoss(1*REAGENTS_EFFECT_MULTIPLIER, 0)
if(current_cycle >= 18)
M.Sleeping(40, 0)
..()
@@ -555,7 +555,7 @@
if(prob(8))
to_chat(M, "You feel horrendously weak!")
M.Stun(40, 0)
- M.adjustToxLoss(2*REM, 0)
+ M.adjustToxLoss(2*REAGENTS_EFFECT_MULTIPLIER, 0)
return ..()
/datum/reagent/toxin/bad_food
@@ -583,15 +583,15 @@
/datum/reagent/toxin/itching_powder/on_mob_life(mob/living/carbon/M)
if(prob(15))
to_chat(M, "You scratch at your head.")
- M.adjustBruteLoss(0.2*REM, 0)
+ M.adjustBruteLoss(0.2*REAGENTS_EFFECT_MULTIPLIER, 0)
. = 1
if(prob(15))
to_chat(M, "You scratch at your leg.")
- M.adjustBruteLoss(0.2*REM, 0)
+ M.adjustBruteLoss(0.2*REAGENTS_EFFECT_MULTIPLIER, 0)
. = 1
if(prob(15))
to_chat(M, "You scratch at your arm.")
- M.adjustBruteLoss(0.2*REM, 0)
+ M.adjustBruteLoss(0.2*REAGENTS_EFFECT_MULTIPLIER, 0)
. = 1
if(prob(3))
M.reagents.add_reagent(/datum/reagent/toxin/histamine,rand(1,3))
@@ -660,7 +660,7 @@
/datum/reagent/toxin/sodium_thiopental/on_mob_life(mob/living/carbon/M)
if(current_cycle >= 10)
M.Sleeping(40, 0)
- M.adjustStaminaLoss(10*REM, 0)
+ M.adjustStaminaLoss(10*REAGENTS_EFFECT_MULTIPLIER, 0)
..()
return TRUE
@@ -687,7 +687,7 @@
value = REAGENT_VALUE_RARE
/datum/reagent/toxin/amanitin/on_mob_end_metabolize(mob/living/M)
- var/toxdamage = current_cycle*3*REM
+ var/toxdamage = current_cycle*3*REAGENTS_EFFECT_MULTIPLIER
M.log_message("has taken [toxdamage] toxin damage from amanitin toxin", LOG_ATTACK)
M.adjustToxLoss(toxdamage)
..()
@@ -703,7 +703,7 @@
/datum/reagent/toxin/lipolicide/on_mob_life(mob/living/carbon/M)
if(M.nutrition <= NUTRITION_LEVEL_STARVING)
- M.adjustToxLoss(1*REM, 0)
+ M.adjustToxLoss(1*REAGENTS_EFFECT_MULTIPLIER, 0)
M.adjust_nutrition(-3) // making the chef more valuable, one meme trap at a time
M.overeatduration = 0
return ..()
@@ -759,7 +759,7 @@
/datum/reagent/toxin/curare/on_mob_life(mob/living/carbon/M)
if(current_cycle >= 11)
M.DefaultCombatKnockdown(60, 0)
- M.adjustOxyLoss(1*REM, 0)
+ M.adjustOxyLoss(1*REAGENTS_EFFECT_MULTIPLIER, 0)
. = 1
..()
@@ -942,7 +942,7 @@
/datum/reagent/toxin/delayed/on_mob_life(mob/living/carbon/M)
if(current_cycle > delay)
holder.remove_reagent(type, actual_metaboliztion_rate * M.metabolism_efficiency)
- M.adjustToxLoss(actual_toxpwr*REM, 0)
+ M.adjustToxLoss(actual_toxpwr*REAGENTS_EFFECT_MULTIPLIER, 0)
if(prob(10))
M.DefaultCombatKnockdown(20, 0)
. = 1
diff --git a/code/modules/reagents/reagent_containers/chem_pack.dm b/code/modules/reagents/reagent_containers/chem_pack.dm
index 77d6067d3b..139a5f626f 100644
--- a/code/modules/reagents/reagent_containers/chem_pack.dm
+++ b/code/modules/reagents/reagent_containers/chem_pack.dm
@@ -30,8 +30,8 @@
SplashReagents(user)
return
else
- DISABLE_BITFIELD(reagents.reagents_holder_flags, OPENCONTAINER)
- ENABLE_BITFIELD(reagents.reagents_holder_flags, DRAWABLE |INJECTABLE )
+ reagents.reagents_holder_flags &= ~(OPENCONTAINER)
+ reagents.reagents_holder_flags |= (DRAWABLE|INJECTABLE)
spillable = FALSE
sealed = TRUE
to_chat(user, "You seal the bag.")
diff --git a/code/modules/reagents/reagent_containers/rags.dm b/code/modules/reagents/reagent_containers/rags.dm
index 8a6e2bf2e7..c26ed4db31 100644
--- a/code/modules/reagents/reagent_containers/rags.dm
+++ b/code/modules/reagents/reagent_containers/rags.dm
@@ -141,11 +141,11 @@
/obj/item/reagent_containers/rag/towel/attack(mob/living/M, mob/living/user)
if(user.a_intent == INTENT_HARM)
- DISABLE_BITFIELD(item_flags, NOBLUDGEON)
+ item_flags &= ~(NOBLUDGEON)
. = TRUE
..()
if(.)
- ENABLE_BITFIELD(item_flags, NOBLUDGEON)
+ item_flags |= NOBLUDGEON
/obj/item/reagent_containers/rag/towel/equipped(mob/living/user, slot)
. = ..()
diff --git a/code/modules/research/designs/comp_board_designs/comp_board_designs_all_misc.dm b/code/modules/research/designs/comp_board_designs/comp_board_designs_all_misc.dm
index 99caa5b480..8ea883edf1 100644
--- a/code/modules/research/designs/comp_board_designs/comp_board_designs_all_misc.dm
+++ b/code/modules/research/designs/comp_board_designs/comp_board_designs_all_misc.dm
@@ -21,14 +21,6 @@
category = list("Computer Boards")
departmental_flags = DEPARTMENTAL_FLAG_ALL
-/datum/design/board/minesweeper
- name = "Computer Design (Minesweeper Arcade Machine)"
- desc = "Allows for the construction of circuit boards used to build a new Minesweeper machine."
- id = "arcade_minesweeper"
- build_path = /obj/item/circuitboard/computer/arcade/minesweeper
- category = list("Computer Boards")
- departmental_flags = DEPARTMENTAL_FLAG_ALL
-
/datum/design/board/slot_machine
name = "Computer Design (Slot Machine)"
desc = "Allows for the construction of circuit boards used to build a new slot machine."
diff --git a/code/modules/research/designs/machine_desings/machine_designs_all_misc.dm b/code/modules/research/designs/machine_desings/machine_designs_all_misc.dm
index 81b16d1118..570c99e6ae 100644
--- a/code/modules/research/designs/machine_desings/machine_designs_all_misc.dm
+++ b/code/modules/research/designs/machine_desings/machine_designs_all_misc.dm
@@ -10,6 +10,14 @@
category = list ("Misc. Machinery")
departmental_flags = DEPARTMENTAL_FLAG_ALL
+/datum/design/board/autoloom
+ name = "Machine Design (Autoloom Board)"
+ desc = "The circuit board for an autoloom."
+ id = "autoloom"
+ build_path = /obj/item/circuitboard/machine/autoloom
+ category = list ("Misc. Machinery")
+ departmental_flags = DEPARTMENTAL_FLAG_SERVICE
+
/datum/design/board/holopad
name = "Machine Design (AI Holopad Board)"
desc = "The circuit board for a holopad."
diff --git a/code/modules/research/techweb/nodes/computer_hud_nodes.dm b/code/modules/research/techweb/nodes/computer_hud_nodes.dm
index 2db03861e9..0f2cf2e4bd 100644
--- a/code/modules/research/techweb/nodes/computer_hud_nodes.dm
+++ b/code/modules/research/techweb/nodes/computer_hud_nodes.dm
@@ -56,5 +56,5 @@
display_name = "Games and Toys"
description = "For the slackers on the station."
prereq_ids = list("comptech")
- design_ids = list("arcade_battle", "arcade_orion", "arcade_minesweeper", "slotmachine", "autoylathe")
+ design_ids = list("arcade_battle", "arcade_orion", "slotmachine", "autoylathe")
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1000)
diff --git a/code/modules/research/techweb/nodes/tools_nodes.dm b/code/modules/research/techweb/nodes/tools_nodes.dm
index 180cdb5778..86a48ab8de 100644
--- a/code/modules/research/techweb/nodes/tools_nodes.dm
+++ b/code/modules/research/techweb/nodes/tools_nodes.dm
@@ -37,7 +37,7 @@
display_name = "Botanical Engineering"
description = "Botanical tools."
prereq_ids = list("adv_engi", "biotech")
- design_ids = list("diskplantgene", "portaseeder", "plantgenes", "flora_gun", "hydro_tray", "biogenerator", "seed_extractor")
+ design_ids = list("diskplantgene", "portaseeder", "plantgenes", "flora_gun", "hydro_tray", "biogenerator", "seed_extractor", "autoloom")
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2750)
/datum/techweb_node/exp_tools
diff --git a/code/modules/surgery/organs/lungs.dm b/code/modules/surgery/organs/lungs.dm
index 897c7610a1..553cc2d043 100644
--- a/code/modules/surgery/organs/lungs.dm
+++ b/code/modules/surgery/organs/lungs.dm
@@ -90,6 +90,11 @@
max = safe_breath_dam_max,
damage_type = safe_damage_type
)
+ if(ispath(breathing_class))
+ var/datum/breathing_class/class = GLOB.gas_data.breathing_classes[breathing_class]
+ for(var/g in class.gases)
+ if(class.gases[g] > 0)
+ gas_min -= g
//TODO: lung health affects lung function
/obj/item/organ/lungs/onDamage(damage_mod) //damage might be too low atm.
@@ -196,9 +201,9 @@
mole_adjustments[entry] = -required_moles
mole_adjustments[breath_results[entry]] = required_moles
if(required_pp < safe_min)
- var/multiplier = 0
+ var/multiplier = handle_too_little_breath(H, required_pp, safe_min, required_moles)
if(required_moles > 0)
- multiplier = handle_too_little_breath(H, required_pp, safe_min, required_moles) / required_moles
+ multiplier /= required_moles
for(var/adjustment in mole_adjustments)
mole_adjustments[adjustment] *= multiplier
if(alert_category)
@@ -222,8 +227,7 @@
alert_category = breathing_class.high_alert_category
alert_type = breathing_class.high_alert_datum
danger_reagent = breathing_class.danger_reagent
- for(var/gas in gases)
- found_pp += PP(breath, gas)
+ found_pp = breathing_class.get_effective_pp(breath)
else
danger_reagent = danger_reagents[entry]
if(entry in breath_alert_info)
@@ -517,17 +521,20 @@
var/total_moles = breath.total_moles()
for(var/id in breath.get_gases())
var/this_pressure = PP(breath, id)
- var/req_pressure = (this_pressure * SAFE_THRESHOLD_RATIO) - 1
- if(req_pressure > 0)
- gas_min[id] = req_pressure
+ if(id in gas_min)
+ var/req_pressure = (this_pressure * SAFE_THRESHOLD_RATIO) - 1
+ if(req_pressure > 0)
+ gas_min[id] = req_pressure
+ else
+ gas_min -= id // if there's not even enough of the gas to register, we shouldn't need it
if(id in gas_max)
gas_max[id] += this_pressure
- var/bz = breath.get_moles(GAS_BZ)
+ var/bz = breath.get_moles(GAS_BZ) // snowflaked cause it's got special behavior, of course
if(bz)
BZ_trip_balls_min += bz
BZ_brain_damage_min += bz
- gas_max[GAS_N2] = PP(breath, GAS_N2) + 5
+ gas_max[GAS_N2] = max(15, PP(breath, GAS_N2) + 3) // don't want ash lizards breathing on station; sometimes they might be able to, though
var/datum/breathing_class/class = GLOB.gas_data.breathing_classes[breathing_class]
var/o2_pp = class.get_effective_pp(breath)
safe_breath_min = min(3, 0.3 * o2_pp)
diff --git a/code/modules/surgery/organs/organ_internal.dm b/code/modules/surgery/organs/organ_internal.dm
index 1800fe221b..de8e3d623d 100644
--- a/code/modules/surgery/organs/organ_internal.dm
+++ b/code/modules/surgery/organs/organ_internal.dm
@@ -106,7 +106,7 @@
applyOrganDamage(maxHealth * decay_factor * (seconds * 0.5))
/obj/item/organ/proc/can_decay()
- if(CHECK_BITFIELD(organ_flags, ORGAN_NO_SPOIL | ORGAN_SYNTHETIC | ORGAN_FAILING))
+ if(organ_flags & (ORGAN_NO_SPOIL | ORGAN_SYNTHETIC | ORGAN_FAILING))
return FALSE
return TRUE
diff --git a/code/modules/surgery/surgery.dm b/code/modules/surgery/surgery.dm
index 859c5c6d40..0ffae2bb7d 100644
--- a/code/modules/surgery/surgery.dm
+++ b/code/modules/surgery/surgery.dm
@@ -71,7 +71,7 @@
var/turf/T = get_turf(patient)
var/obj/structure/table/optable/table = locate(/obj/structure/table/optable, T)
- if(table?.computer && !CHECK_BITFIELD(table.computer.stat, NOPOWER|BROKEN))
+ if(table?.computer && !(table.computer.stat & (NOPOWER|BROKEN)))
advanced_surgeries |= table.computer.advanced_surgeries
if(istype(tool, /obj/item/surgical_drapes/advanced))
diff --git a/code/modules/vore/eating/belly_obj.dm b/code/modules/vore/eating/belly_obj.dm
index 8e74dd3c92..474c912c23 100644
--- a/code/modules/vore/eating/belly_obj.dm
+++ b/code/modules/vore/eating/belly_obj.dm
@@ -278,14 +278,14 @@
SEND_SIGNAL(OW, COMSIG_ADD_MOOD_EVENT, "emptypred", /datum/mood_event/emptypred)
SEND_SIGNAL(ML, COMSIG_ADD_MOOD_EVENT, "emptyprey", /datum/mood_event/emptyprey)
- if(CHECK_BITFIELD(ML.vore_flags,ABSORBED))
- DISABLE_BITFIELD(ML.vore_flags,ABSORBED)
+ if((ML.vore_flags & ABSORBED))
+ ML.vore_flags &= ~(ABSORBED)
if(ishuman(M) && ishuman(OW))
var/mob/living/carbon/human/Prey = M
var/mob/living/carbon/human/Pred = OW
var/absorbed_count = 2 //Prey that we were, plus the pred gets a portion
for(var/mob/living/P in contents)
- if(CHECK_BITFIELD(P.vore_flags,ABSORBED))
+ if((P.vore_flags & ABSORBED))
absorbed_count++
Pred.reagents.trans_to(Prey, Pred.reagents.total_volume / absorbed_count)
@@ -390,7 +390,7 @@
formatted_message = replacetext(formatted_message,"%pred",owner)
formatted_message = replacetext(formatted_message,"%prey",english_list(contents))
for(var/mob/living/P in contents)
- if(!CHECK_BITFIELD(P.vore_flags, ABSORBED)) //This is required first, in case there's a person absorbed and not absorbed in a stomach.
+ if(!(P.vore_flags & ABSORBED)) //This is required first, in case there's a person absorbed and not absorbed in a stomach.
total_bulge += P.mob_size
if(total_bulge >= bulge_size && bulge_size != 0)
return("[formatted_message] ")
@@ -485,7 +485,7 @@
// Handle a mob being absorbed
/obj/belly/proc/absorb_living(var/mob/living/M)
- ENABLE_BITFIELD(M.vore_flags, ABSORBED)
+ M.vore_flags |= ABSORBED
to_chat(M,"[owner]'s [lowertext(name)] absorbs your body, making you part of them.")
to_chat(owner,"Your [lowertext(name)] absorbs [M]'s body, making them part of you.")
@@ -499,7 +499,7 @@
for(var/belly in M.vore_organs)
var/obj/belly/B = belly
for(var/mob/living/Mm in B)
- if(CHECK_BITFIELD(Mm.vore_flags, ABSORBED))
+ if((Mm.vore_flags & ABSORBED))
absorb_living(Mm)
//Update owner
diff --git a/code/modules/vore/eating/bellymodes.dm b/code/modules/vore/eating/bellymodes.dm
index 8d64ee28f1..7828de8cde 100644
--- a/code/modules/vore/eating/bellymodes.dm
+++ b/code/modules/vore/eating/bellymodes.dm
@@ -76,7 +76,7 @@
play_sound = pick(pred_digest)
//Pref protection!
- if (!CHECK_BITFIELD(M.vore_flags, DIGESTABLE) || M.vore_flags & ABSORBED)
+ if (!(M.vore_flags & DIGESTABLE) || M.vore_flags & ABSORBED)
continue
//Person just died in guts!
@@ -165,7 +165,7 @@
for (var/mob/living/M in contents)
if(M.vore_flags & ABSORBED && owner.nutrition >= 100)
- DISABLE_BITFIELD(M.vore_flags, ABSORBED)
+ M.vore_flags &= ~(ABSORBED)
to_chat(M,"You suddenly feel solid again ")
to_chat(owner,"You feel like a part of you is missing.")
owner.adjust_nutrition(-100)
diff --git a/code/modules/vore/eating/living.dm b/code/modules/vore/eating/living.dm
index 6bc44e6489..1f4950eaa7 100644
--- a/code/modules/vore/eating/living.dm
+++ b/code/modules/vore/eating/living.dm
@@ -33,7 +33,7 @@
return TRUE
/mob/living/proc/init_vore()
- ENABLE_BITFIELD(vore_flags, VORE_INIT)
+ vore_flags |= VORE_INIT
//Something else made organs, meanwhile.
if(LAZYLEN(vore_organs))
return TRUE
@@ -75,7 +75,7 @@
lazy_init_belly()
if(pred == prey) //you click your target
- if(!CHECK_BITFIELD(pred.vore_flags,FEEDING))
+ if(!(pred.vore_flags & FEEDING))
to_chat(user, "They aren't able to be fed.")
to_chat(pred, "[user] tried to feed you themselves, but you aren't voracious enough to be fed.")
return
@@ -85,11 +85,11 @@
feed_grabbed_to_self(user, prey)
else // click someone other than you/prey
- if(!CHECK_BITFIELD(pred.vore_flags,FEEDING))
+ if(!(pred.vore_flags & FEEDING))
to_chat(user, "They aren't voracious enough to be fed.")
to_chat(pred, "[user] tried to feed you [prey], but you aren't voracious enough to be fed.")
return
- if(!CHECK_BITFIELD(prey.vore_flags,FEEDING))
+ if(!(prey.vore_flags & FEEDING))
to_chat(user, "They aren't able to be fed to someone.")
to_chat(prey, "[user] tried to feed you to [pred], but you aren't able to be fed to them.")
return
@@ -122,7 +122,7 @@
testing("[user] attempted to feed [prey] to [pred], via [lowertext(belly.name)] but it went wrong.")
return
- if (!CHECK_BITFIELD(prey.vore_flags, DEVOURABLE))
+ if (!(prey.vore_flags & DEVOURABLE))
to_chat(user, "This can't be eaten!")
return FALSE
@@ -283,7 +283,7 @@
if(!client || !client.prefs)
to_chat(src,"You attempted to apply your vore prefs but somehow you're in this character without a client.prefs variable. Tell a dev.")
return FALSE
- ENABLE_BITFIELD(vore_flags,VOREPREF_INIT)
+ vore_flags |= VOREPREF_INIT
COPY_SPECIFIC_BITFIELDS(vore_flags, client.prefs.vore_flags, DIGESTABLE | DEVOURABLE | FEEDING | LICKABLE | SMELLABLE | ABSORBABLE | MOBVORE)
vore_taste = client.prefs.vore_taste
vore_smell = client.prefs.vore_smell
diff --git a/code/modules/vore/eating/vorepanel.dm b/code/modules/vore/eating/vorepanel.dm
index 8e8cfc4935..a44760ae69 100644
--- a/code/modules/vore/eating/vorepanel.dm
+++ b/code/modules/vore/eating/vorepanel.dm
@@ -181,15 +181,15 @@
data["selected"] = selected_list
data["prefs"] = list(
- "digestable" = CHECK_BITFIELD(host.vore_flags, DIGESTABLE),
- "devourable" = CHECK_BITFIELD(host.vore_flags, DEVOURABLE),
- "feeding" = CHECK_BITFIELD(host.vore_flags, FEEDING),
- "absorbable" = CHECK_BITFIELD(host.vore_flags, ABSORBABLE),
- "allowmobvore" = CHECK_BITFIELD(host.vore_flags, MOBVORE),
- "vore_sounds" = CHECK_BITFIELD(host.client.prefs.cit_toggles, EATING_NOISES),
- "digestion_sounds" = CHECK_BITFIELD(host.client.prefs.cit_toggles, DIGESTION_NOISES),
- "lickable" = CHECK_BITFIELD(host.vore_flags, LICKABLE),
- "smellable" = CHECK_BITFIELD(host.vore_flags, SMELLABLE),
+ "digestable" = (host.vore_flags & DIGESTABLE),
+ "devourable" = (host.vore_flags & DEVOURABLE),
+ "feeding" = (host.vore_flags & FEEDING),
+ "absorbable" = (host.vore_flags & ABSORBABLE),
+ "allowmobvore" = (host.vore_flags & MOBVORE),
+ "vore_sounds" = (host.client.prefs.cit_toggles & EATING_NOISES),
+ "digestion_sounds" = (host.client.prefs.cit_toggles & DIGESTION_NOISES),
+ "lickable" = (host.vore_flags & LICKABLE),
+ "smellable" = (host.vore_flags & SMELLABLE),
)
return data
@@ -307,49 +307,49 @@
unsaved_changes = TRUE
return TRUE
if("toggle_digest")
- TOGGLE_BITFIELD(host.vore_flags, DIGESTABLE)
+ (host.vore_flags ^= DIGESTABLE)
if(host.client.prefs)
COPY_SPECIFIC_BITFIELDS(host.client.prefs.vore_flags, host.vore_flags, DIGESTABLE)
unsaved_changes = TRUE
return TRUE
if("toggle_devour")
- TOGGLE_BITFIELD(host.vore_flags, DEVOURABLE)
+ (host.vore_flags ^= DEVOURABLE)
if(host.client.prefs)
COPY_SPECIFIC_BITFIELDS(host.client.prefs.vore_flags, host.vore_flags, DEVOURABLE)
unsaved_changes = TRUE
return TRUE
if("toggle_feed")
- TOGGLE_BITFIELD(host.vore_flags, FEEDING)
+ (host.vore_flags ^= FEEDING)
if(host.client.prefs)
COPY_SPECIFIC_BITFIELDS(host.client.prefs.vore_flags, host.vore_flags, FEEDING)
unsaved_changes = TRUE
return TRUE
if("toggle_absorbable")
- TOGGLE_BITFIELD(host.vore_flags, ABSORBABLE)
+ (host.vore_flags ^= ABSORBABLE)
if(host.client.prefs)
COPY_SPECIFIC_BITFIELDS(host.client.prefs.vore_flags, host.vore_flags, ABSORBABLE)
unsaved_changes = TRUE
return TRUE
if("toggle_mobvore")
- TOGGLE_BITFIELD(host.vore_flags, MOBVORE)
+ (host.vore_flags ^= MOBVORE)
if(host.client.prefs)
COPY_SPECIFIC_BITFIELDS(host.client.prefs.vore_flags, host.vore_flags, MOBVORE)
unsaved_changes = TRUE
return TRUE
if("toggle_vore_sounds")
- TOGGLE_BITFIELD(host.client.prefs.cit_toggles, EATING_NOISES)
+ (host.client.prefs.cit_toggles ^= EATING_NOISES)
unsaved_changes = TRUE
return TRUE
if("toggle_digestion_sounds")
- TOGGLE_BITFIELD(host.client.prefs.cit_toggles, DIGESTION_NOISES)
+ (host.client.prefs.cit_toggles ^= DIGESTION_NOISES)
unsaved_changes = TRUE
return TRUE
if("toggle_lickable")
- TOGGLE_BITFIELD(host.vore_flags, LICKABLE)
+ (host.vore_flags ^= LICKABLE)
unsaved_changes = TRUE
return TRUE
if("toggle_smellable")
- TOGGLE_BITFIELD(host.vore_flags, SMELLABLE)
+ (host.vore_flags ^= SMELLABLE)
unsaved_changes = TRUE
return TRUE
diff --git a/html/changelog.html b/html/changelog.html
index 2b6407735e..c93c0eae84 100644
--- a/html/changelog.html
+++ b/html/changelog.html
@@ -50,6 +50,98 @@
-->
+
11 November 2021
+
DrPainis updated:
+
+
The universe has realized that not every species uses hemoglobin again.
+
+
Putnam3145 updated:
+
+
"REM" removed, replaced with "REAGENTS_EFFECT_MULTIPLIER", which "REM" is short for
+
+
+
10 November 2021
+
Ethan4303 updated:
+
+
Added two wire nodes under the engineering PA room Apc and under the HOS office APC
+
Added cables to connect the second floor relay to the power grid
+
Removed the generic broken computer from Hos Office
+
Fixed Hos office not having the Security records console
+
+
Putnam3145 updated:
+
+
Power alerts now work
+
No longer have too much O2 from too much CO2
+
+
SandPoot updated:
+
+
Crayon precision mode.
+
+
+
08 November 2021
+
timothyteakettle updated:
+
+
fixes party pod sprite
+
fixes red panda head marking
+
+
+
06 November 2021
+
Putnam3145 updated:
+
+
Ashwalkers should no longer suffocate on lavaland (and hypothetical other future problems)
+
A gas mix with 0 oxygen should now properly suffocate you (or 0 plasma, for ashwalkers)
+
+
+
05 November 2021
+
keronshb updated:
+
+
removes required enemies
+
Lowers assassination threat threshold
+
+
+
31 October 2021
+
DeltaFire15 updated:
+
+
You can now drag things over prone people again.
+
+
DrPainis updated:
+
+
Walking no longer makes you fat.
+
+
keronshb updated:
+
+
Christmas trees are now indestructible
+
+
+
30 October 2021
+
keronshb updated:
+
+
Jacq can't burn in the cremator anymore
+
Jacq also can't be cheesed off station
+
Barth also cannot be destroyed
+
+
+
28 October 2021
+
Hatterhat updated:
+
+
Proto-kinetic gauntlets! Less straight damage, extra damage on backstabs, slows Lavaland fauna on counterhit. tweak: The glaive kit has been renamed to the premium kinetic melee kit, and now has a voucher for either a glaive or gauntlets.
+
NanoTrasen is rolling out a prototype Autoloom, hidden behind Botanical Engineering. It only processes cotton and logs. Despite its visual similarity to the recycler, it is entirely tamperproof.
+
+
Linzolle updated:
+
+
plasmamen now spawn in their proper outfit in the ghostcafe
+
+
Putnam3145 updated:
+
+
Removed minesweeper
+
+
keronshb updated:
+
+
-40 wound bonus for DSword
+
-20 Wound bonus for Hyper Eu
+
Fixes hyper eu's slowdown when it's not wielded
+
+
26 October 2021
WanderingFox95 updated:
@@ -360,142 +452,6 @@
The SWAT helmet is now consistent between its front, side and back sprites for coloration.
new riot armor sprites
-
-
10 September 2021
-
BlueWildrose updated:
-
-
CTRL + (combat mode) Right Click - positional dropping and item rotation.
-
-
keronshb updated:
-
-
Readds Reebe
-
Added the ability to dye your hair with gradients by using a hair dye spray.
-
The new Colorist quirk, allowing you to spawn with a hair dye spray.
-
Adds Hair gradients to preferences
-
Three new hair gradients, a pair of shorter fades and a spiky wave.
-
Adds viewers for mask of madness so it doesn't wallhack
-
-
zeroisthebiggay updated:
-
-
Replaced the DNA probe's old sprite (Hypospray) with a unique sprite
-
added some icons and images for hyposprays and medipens so they stand out
-
added inhands for the cautery, retractor, drapes and hemostat.
-
New icon and sprites for the DNA probe
-
Emergency survival boxes now have an unique blue sprite and description to tell them apart from regular boxes.
-
Added craftable normal/extended emergency oxygen tank boxes to put your emergency oxygen tank collection inside.
-
Emergency first aid kits now look visually consistent with full first aid kits.
-
Ports new Hypospray, Combat Autoinjector, Pestle, Mortar and Dropper sprites from Shiptest!
-
Adds a new sprite for pill bottles!
-
new surgical tool sprites
-
The cyborg toolset is now all new and improved, with a new coat of paint!
-
Updates pride hammer sprites!
-
Replaced old Mjolnir sprites with new Mjolnir sprites.
-
-
-
08 September 2021
-
keronshb updated:
-
-
Adds the parade outfit for the HoS and Centcomm
-
Recolors the parade outfit for the Captain
-
Adds a toggle option for the parade outfits
-
Observers can no longer highlight your items
-
-
-
07 September 2021
-
bunny232 updated:
-
-
fixed some jank in pubby's xenobiological secure pen
-
-
keronshb updated:
-
-
Gremlins no longer have AA when dead
-
-
zeroisthebiggay updated:
-
-
you can just about
-
-
-
05 September 2021
-
DeltaFire15 updated:
-
-
Unreadied player gamemode votes now actually get ignored (if the config for this is enabled).
-
-
-
04 September 2021
-
Putnam3145 updated:
-
-
Might've fixed some ghost sprite oddities nobody even knew about
-
-
WanderingFox95 updated:
-
-
Lavaland architects don't screw up so badly anymore and do in fact not somehow leave holes through the planet surface all the way into space under their bookshelves.
-
Snow was removed from Lavaland Ruins.
-
-
keronshb updated:
-
-
Fixes entering an occupied VR sleeper bug
-
-
timothyteakettle updated:
-
-
makes the arm/leg markings for synthetic lizards appear as an option again
-
-
-
03 September 2021
-
timothyteakettle updated:
-
-
fixes losing your additional language upon changing species
-
-
-
01 September 2021
-
BlueWildrose updated:
-
-
The waddle component now takes size into account when running rotating animations, thus not reverting character sizes to default size.
-
-
ma44 updated:
-
-
Weapon rechargers now have their recharger indicators again.
-
Energy guns now update when switching modes again.
-
Stabilized yellow slime extracts will now update cells and guns it recharges.
-
Weapon rechargers will now be more noticeable when it has finished recharging something.
-
-
zeroisthebiggay updated:
-
-
the fucking chainsaw sprite
-
-
-
28 August 2021
-
DeltaFire15 updated:
-
-
Demons now drop bodies on their own tile instead of scattering them across the station. tweak: Space dragon content ejection is now slightly safer.
-
Space dragons no longer delete their contents if they die due to timeout, ejecting them instead.
-
Carp rifts created by space dragons now have their armor work correctly.
-
-
Putnam3145 updated:
-
-
Planetary monstermos can now be disabled with varedit
-
Lavaland/ice planet atmos is no longer a preset gas mixture and varies per round
-
-
keronshb updated:
-
-
Ports Inventory Outlines
-
Re-adds the old glue sprite
-
Adds Plague Rats
-
Gives Plague Rat spawn conditions for regular mice
-
Plague Rat sprite
-
Gremlin
-
Gremlin sprites
-
-
zeroisthebiggay updated:
-
-
grilles as maintenance loot
-
sevensune tail from hyperstation
-
-
-
26 August 2021
-
keronshb updated:
-
-
Adds catwalk floors
-
GoonStation 13 Development Team
diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml
index d4cc657b3d..f1f87bef20 100644
--- a/html/changelogs/.all_changelog.yml
+++ b/html/changelogs/.all_changelog.yml
@@ -30167,3 +30167,64 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.
WanderingFox95:
- rscadd: bone anvils and bone ingots
- imageadd: bone anvil sprites
+2021-10-28:
+ Hatterhat:
+ - rscadd: 'Proto-kinetic gauntlets! Less straight damage, extra damage on backstabs,
+ slows Lavaland fauna on counterhit. tweak: The glaive kit has been renamed to
+ the premium kinetic melee kit, and now has a voucher for either a glaive or
+ gauntlets.'
+ - rscadd: NanoTrasen is rolling out a prototype Autoloom, hidden behind Botanical
+ Engineering. It only processes cotton and logs. Despite its visual similarity
+ to the recycler, it is entirely tamperproof.
+ Linzolle:
+ - bugfix: plasmamen now spawn in their proper outfit in the ghostcafe
+ Putnam3145:
+ - rscdel: Removed minesweeper
+ keronshb:
+ - balance: -40 wound bonus for DSword
+ - balance: -20 Wound bonus for Hyper Eu
+ - bugfix: Fixes hyper eu's slowdown when it's not wielded
+2021-10-30:
+ keronshb:
+ - balance: Jacq can't burn in the cremator anymore
+ - balance: Jacq also can't be cheesed off station
+ - balance: Barth also cannot be destroyed
+2021-10-31:
+ DeltaFire15:
+ - bugfix: You can now drag things over prone people again.
+ DrPainis:
+ - bugfix: Walking no longer makes you fat.
+ keronshb:
+ - balance: Christmas trees are now indestructible
+2021-11-05:
+ keronshb:
+ - balance: removes required enemies
+ - balance: Lowers assassination threat threshold
+2021-11-06:
+ Putnam3145:
+ - bugfix: Ashwalkers should no longer suffocate on lavaland (and hypothetical other
+ future problems)
+ - bugfix: A gas mix with 0 oxygen should now properly suffocate you (or 0 plasma,
+ for ashwalkers)
+2021-11-08:
+ timothyteakettle:
+ - bugfix: fixes party pod sprite
+ - bugfix: fixes red panda head marking
+2021-11-10:
+ Ethan4303:
+ - rscadd: Added two wire nodes under the engineering PA room Apc and under the HOS
+ office APC
+ - rscadd: Added cables to connect the second floor relay to the power grid
+ - rscdel: Removed the generic broken computer from Hos Office
+ - bugfix: Fixed Hos office not having the Security records console
+ Putnam3145:
+ - bugfix: Power alerts now work
+ - bugfix: No longer have too much O2 from too much CO2
+ SandPoot:
+ - rscadd: Crayon precision mode.
+2021-11-11:
+ DrPainis:
+ - bugfix: The universe has realized that not every species uses hemoglobin again.
+ Putnam3145:
+ - refactor: '"REM" removed, replaced with "REAGENTS_EFFECT_MULTIPLIER", which "REM"
+ is short for'
diff --git a/icons/effects/blood.dmi b/icons/effects/blood.dmi
index bee16d4d90..c5a3756907 100644
Binary files a/icons/effects/blood.dmi and b/icons/effects/blood.dmi differ
diff --git a/icons/mob/inhands/weapons/hammers_lefthand.dmi b/icons/mob/inhands/weapons/hammers_lefthand.dmi
index 988d64fde3..cb3ecd4e99 100644
Binary files a/icons/mob/inhands/weapons/hammers_lefthand.dmi and b/icons/mob/inhands/weapons/hammers_lefthand.dmi differ
diff --git a/icons/mob/inhands/weapons/hammers_righthand.dmi b/icons/mob/inhands/weapons/hammers_righthand.dmi
index 1e0e7c91bf..f3d9ca52b7 100644
Binary files a/icons/mob/inhands/weapons/hammers_righthand.dmi and b/icons/mob/inhands/weapons/hammers_righthand.dmi differ
diff --git a/icons/obj/machines/sleeper.dmi b/icons/obj/machines/sleeper.dmi
index ff9e2b197a..134448fc4e 100644
Binary files a/icons/obj/machines/sleeper.dmi and b/icons/obj/machines/sleeper.dmi differ
diff --git a/icons/obj/mining.dmi b/icons/obj/mining.dmi
index f70f110078..e03f6e9b97 100644
Binary files a/icons/obj/mining.dmi and b/icons/obj/mining.dmi differ
diff --git a/icons/obj/stack_objects.dmi b/icons/obj/stack_objects.dmi
index 3136cf34b2..026612b144 100644
Binary files a/icons/obj/stack_objects.dmi and b/icons/obj/stack_objects.dmi differ
diff --git a/tgstation.dme b/tgstation.dme
index 0c72aa5c46..05ea1ac16f 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -855,6 +855,7 @@
#include "code\game\machinery\announcement_system.dm"
#include "code\game\machinery\aug_manipulator.dm"
#include "code\game\machinery\autolathe.dm"
+#include "code\game\machinery\autoloom.dm"
#include "code\game\machinery\bank_machine.dm"
#include "code\game\machinery\Beacon.dm"
#include "code\game\machinery\bloodbankgen.dm"
@@ -937,7 +938,6 @@
#include "code\game\machinery\computer\telecrystalconsoles.dm"
#include "code\game\machinery\computer\teleporter.dm"
#include "code\game\machinery\computer\arcade\battle.dm"
-#include "code\game\machinery\computer\arcade\minesweeper.dm"
#include "code\game\machinery\computer\arcade\misc_arcade.dm"
#include "code\game\machinery\computer\arcade\orion_trail.dm"
#include "code\game\machinery\computer\prisoner\_prisoner.dm"
diff --git a/tgui/packages/tgui/interfaces/Crayon.js b/tgui/packages/tgui/interfaces/Crayon.js
index 05191f8c66..568e02667b 100644
--- a/tgui/packages/tgui/interfaces/Crayon.js
+++ b/tgui/packages/tgui/interfaces/Crayon.js
@@ -1,11 +1,18 @@
import { useBackend } from '../backend';
-import { Button, LabeledList, Section } from '../components';
+import { Button, LabeledList, Section, Slider } from '../components';
import { Window } from '../layouts';
export const Crayon = (props, context) => {
const { act, data } = useBackend(context);
const capOrChanges = data.has_cap || data.can_change_colour;
const drawables = data.drawables || [];
+ const {
+ precision_mode,
+ x,
+ y,
+ min_offset,
+ max_offset,
+ } = data;
return (
{
onClick={() => act('select_colour')} />
)}
+
+
+
+
+ {!!precision_mode && (
+ <>
+
+ act('set_precision_x', {
+ x: value,
+ })} />
+
+
+ act('set_precision_y', {
+ y: value,
+ })} />
+
+ >
+ )}
+
+
{drawables.map(drawable => {