Merge branch 'master' into updates_the_nbt

# Conflicts:
#	code/__defines/misc.dm
#	code/game/machinery/machinery.dm
#	maps/_common/mapsystem/map.dm
This commit is contained in:
alberyk
2022-02-19 10:26:35 -03:00
149 changed files with 2287 additions and 581 deletions
@@ -104,7 +104,7 @@
var/list/viruses = list()
/obj/effect/decal/cleanable/vomit/Initialize()
..()
. = ..()
create_reagents(20, src)
/obj/effect/decal/cleanable/tomato_smudge
+2
View File
@@ -336,6 +336,7 @@
/obj/item/proc/dropped(var/mob/user)
if(zoom)
zoom(user) //binoculars, scope, etc
SEND_SIGNAL(src, COMSIG_ITEM_REMOVE, src)
// Called whenever an object is moved around inside the mob's contents.
// Linker proc: mob/proc/prepare_for_slotmove, which is referenced in proc/handle_item_insertion and obj/item/attack_hand.
@@ -343,6 +344,7 @@
/obj/item/proc/on_slotmove(var/mob/user, slot)
if(zoom)
zoom(user)
SEND_SIGNAL(src, COMSIG_ITEM_REMOVE, src)
// called just as an item is picked up (loc is not yet changed)
/obj/item/proc/pickup(mob/user)
@@ -153,7 +153,7 @@
else
add_overlay(screen_overlays["intercom_screen"])
add_overlay(screen_overlays["intercom_scanline"])
set_light(1.4, 1, COLOR_CYAN)
set_light(1.4, 1.3, COLOR_CYAN)
if(broadcasting)
add_overlay(screen_overlays["intercom_b"])
if(listening)
+1 -1
View File
@@ -667,7 +667,7 @@ BREATH ANALYZER
add_fingerprint(user)
/obj/item/device/advanced_healthanalyzer/proc/print_scan(var/mob/M, var/mob/living/user)
var/obj/item/paper/R = new(user.loc)
var/obj/item/paper/medscan/R = new(user.loc)
R.color = "#eeffe8"
R.set_content_unsafe("Scan ([M.name])", internal_bodyscanner.format_occupant_data(get_medical_data(M)))
+5 -8
View File
@@ -214,11 +214,15 @@
/obj/item/glass_jar/gumball
contains = JAR_GUMBALL
var/gumball_path = /obj/item/clothing/mask/chewable/candy/gum/gumball
/obj/item/glass_jar/gumball/medical
gumball_path = /obj/item/clothing/mask/chewable/candy/gum/gumball/medical
/obj/item/glass_jar/gumball/Initialize()
..()
for(var/i = 1 to GUMBALL_MAX)
var/obj/item/clothing/mask/chewable/candy/gum/gumball/G = new(src)
var/obj/item/clothing/mask/chewable/candy/gum/gumball/G = new gumball_path(src)
contained += G
return INITIALIZE_HINT_LATELOAD
@@ -226,13 +230,6 @@
/obj/item/glass_jar/gumball/LateInitialize()
update_icon()
/obj/item/glass_jar/gumball/medical/Initialize()
for(var/i = 1 to GUMBALL_MAX)
var/obj/item/clothing/mask/chewable/candy/gum/gumball/medical/G = new(src)
contained += G
return INITIALIZE_HINT_LATELOAD
#undef JAR_NOTHING
#undef JAR_MONEY
#undef JAR_ANIMAL
+32 -1
View File
@@ -11,6 +11,29 @@
var/static/list/knitables = list(/obj/item/clothing/accessory/sweater, /obj/item/clothing/suit/storage/toggle/cardigan, /obj/item/clothing/suit/storage/toggle/cardigan/sweater, /obj/item/clothing/suit/storage/toggle/cardigan/argyle, /obj/item/clothing/accessory/sweatervest, /obj/item/clothing/accessory/sweaterturtleneck, /obj/item/clothing/gloves/fingerless/colour/knitted, /obj/item/clothing/gloves/knitted, /obj/item/clothing/accessory/bandanna/colorable/knitted, /obj/item/clothing/accessory/scarf)
var/static/list/name2knit
/obj/item/knittingneedles/verb/remove_yarn()
set name = "Remove Yarn"
set category = "Object"
set src in usr
if(use_check_and_message(usr))
return
if(!ball)
to_chat(usr, SPAN_WARNING("There is no yarn on \the [src]!"))
return
if(working)
to_chat(usr, SPAN_WARNING("You can't remove \the [ball] while using \the [src]!"))
return
var/mob/living/carbon/human/H = usr
H.put_in_hands(ball)
ball = null
to_chat(usr, SPAN_NOTICE("You remove \the [ball] from \the [src]."))
update_icon()
/obj/item/knittingneedles/Destroy()
if(ball)
QDEL_NULL(ball)
@@ -30,9 +53,15 @@
item_state = initial(item_state)
if(ball)
add_overlay("[ball.icon_state]")
var/mutable_appearance/yarn_overlay = mutable_appearance(icon, "[ball.icon_state]")
if(ball.color)
yarn_overlay.color = ball.color
else
yarn_overlay.appearance_flags = RESET_COLOR
add_overlay(yarn_overlay)
else
cut_overlays()
update_held_icon()
/obj/item/knittingneedles/attackby(obj/item/O, mob/user)
if(istype(O, /obj/item/yarn))
@@ -62,6 +91,8 @@
var/image/radial_button = image(icon = initial(i.icon), icon_state = initial(i.icon_state))
options[initial(i.name)] = radial_button
var/knit_name = show_radial_menu(user, user, options, radius = 42, tooltips = TRUE)
if(!knit_name)
return
var/type_path = name2knit[knit_name]
user.visible_message("<b>[user]</b> begins knitting something soft and cozy.")
-2
View File
@@ -213,8 +213,6 @@
update_icon()
return 1
else
if(get_amount() < used)
return 0
for(var/i = 1 to charge_costs.len)
var/datum/matter_synth/S = synths[i]
if(!S.use_charge(charge_costs[i] * used)) // Doesn't need to be deleted
+6
View File
@@ -232,6 +232,12 @@
add_fingerprint(user)
/obj/item/flame/lighter/adhomai/AltClick(mob/user)
if(Adjacent(user) && !lit)
protection = !protection
playsound(src.loc, 'sound/weapons/blade_open.ogg', 50, 1)
update_icon()
/obj/item/stack/dice/tajara
name = "adhomian dice"
desc = "An adhomian dice made out of wood. Commonly used to play Suns and Moon."
+4 -2
View File
@@ -118,6 +118,7 @@ var/const/NO_EMAG_ACT = -50
//alt titles are handled a bit weirdly in order to unobtrusively integrate into existing ID system
var/assignment = null //can be alt title or the actual job
var/rank = null //actual job
var/employer_faction = null
var/dorm = 0 // determines if this ID has claimed a dorm already
var/datum/ntnet_user/chat_user
@@ -150,9 +151,9 @@ var/const/NO_EMAG_ACT = -50
chat_user.username = chat_user.generateUsernameIdCard(src)
/obj/item/card/id/proc/set_id_photo(var/mob/M)
front = getFlatIcon(M, SOUTH)
front = getFlatIcon(M, SOUTH, ignore_parent_dir = TRUE)
front.Scale(128, 128)
side = getFlatIcon(M, WEST)
side = getFlatIcon(M, WEST, ignore_parent_dir = TRUE)
side.Scale(128, 128)
/mob/proc/set_id_info(var/obj/item/card/id/id_card)
@@ -173,6 +174,7 @@ var/const/NO_EMAG_ACT = -50
id_card.citizenship = citizenship
id_card.religion = SSrecords.get_religion_record_name(religion)
id_card.mob = src
id_card.employer_faction = employer_faction
/obj/item/card/id/proc/dat()
var/dat = ("<table><tr><td>")
@@ -67,6 +67,7 @@
entries[++entries.len] = list("name" = "Sex", "value" = sex)
entries[++entries.len] = list("name" = "Citizenship", "value" = citizenship)
entries[++entries.len] = list("name" = "Religion", "value" = religion)
entries[++entries.len] = list("name" = "Faction", "value" = employer_faction)
entries[++entries.len] = list("name" = "Factory Reset", "value" = "Use With Care")
data["electronic_warfare"] = electronic_warfare
data["entries"] = entries
@@ -229,6 +230,12 @@
src.religion = new_religion
to_chat(user, SPAN_NOTICE("Religion changed to '[new_religion]'."))
. = 1
if("Faction")
var/new_faction = sanitize(input(user,"Which faction would you like to put on this card?","Agent Card Faction", employer_faction) as null|text)
if(!isnull(new_faction) && CanUseTopic(user,state))
src.employer_faction = new_faction
to_chat(user, SPAN_NOTICE("Faction changed to '[new_faction]'."))
. = 1
if("Factory Reset")
if(alert("This will factory reset the card, including access and owner. Continue?", "Factory Reset", "No", "Yes") == "Yes" && CanUseTopic(user, state))
age = initial(age)
@@ -245,6 +252,7 @@
unset_registered_user()
religion = initial(religion)
sex = initial(sex)
employer_faction = initial(employer_faction)
to_chat(user, "<span class='notice'>All information has been deleted from \the [src].</span>")
. = 1
@@ -15,8 +15,10 @@
/obj/item/device/flashlight/pen,
/obj/item/seeds,
/obj/item/coin,
/obj/item/stack/dice,
/obj/item/disk,
/obj/item/implanter,
/obj/item/flame/lighter,
/obj/item/flame/match,
/obj/item/lipstick,
/obj/item/haircomb,
@@ -30,7 +32,8 @@
/obj/item/device/encryptionkey,
/obj/item/fluff,
/obj/item/storage/business_card_holder,
/obj/item/sample
/obj/item/sample,
/obj/item/key
)
slot_flags = SLOT_ID
+1 -1
View File
@@ -25,7 +25,7 @@
var/mob/living/pulling
/obj/structure/janitorialcart/full/Initialize()
..()
. = ..()
mybag = new /obj/item/storage/bag/trash(src)
mymop = new /obj/item/mop(src)
myspray = new /obj/item/reagent_containers/spray/cleaner(src)
+2
View File
@@ -187,6 +187,8 @@
update_icon()
/obj/structure/railing/CheckExit(var/atom/movable/O, var/turf/target)
if(istype(O) && CanPass(O, target))
return TRUE
if(get_dir(O.loc, target) == dir)
if(!density)
return TRUE
@@ -358,7 +358,7 @@
slowdown = 0
/obj/structure/bed/roller/Initialize()
..()
. = ..()
LAZYADD(can_buckle, /obj/structure/closet/body_bag)
/obj/structure/bed/roller/Destroy()