diff --git a/code/game/machinery/atmoalter/canister.dm b/code/game/machinery/atmoalter/canister.dm index 2a59f345d4..5cf1c188d8 100644 --- a/code/game/machinery/atmoalter/canister.dm +++ b/code/game/machinery/atmoalter/canister.dm @@ -48,8 +48,8 @@ /obj/machinery/portable_atmospherics/canister/phoron name = "Canister \[Phoron\]" - icon_state = "orange" - canister_color = "orange" + icon_state = "orangeps" + canister_color = "orangeps" can_label = 0 /obj/machinery/portable_atmospherics/canister/carbon_dioxide @@ -77,8 +77,8 @@ canister_color = "blue" /obj/machinery/portable_atmospherics/canister/empty/phoron name = "Canister \[Phoron\]" - icon_state = "orange" - canister_color = "orange" + icon_state = "orangeps" + canister_color = "orangeps" /obj/machinery/portable_atmospherics/canister/empty/nitrogen name = "Canister \[N2\]" icon_state = "red" @@ -348,7 +348,7 @@ update_flag "\[N2O\]" = "redws", \ "\[N2\]" = "red", \ "\[O2\]" = "blue", \ - "\[Phoron\]" = "orange", \ + "\[Phoron\]" = "purple", \ "\[CO2\]" = "black", \ "\[Air\]" = "grey", \ "\[CAUTION\]" = "yellow", \ diff --git a/code/game/objects/items/devices/radio/intercom.dm b/code/game/objects/items/devices/radio/intercom.dm index 216e2e59d0..c480d2dd16 100644 --- a/code/game/objects/items/devices/radio/intercom.dm +++ b/code/game/objects/items/devices/radio/intercom.dm @@ -35,12 +35,12 @@ /obj/item/device/radio/intercom/department/medbay name = "station intercom (Medbay)" - icon_state = "secintercom" + icon_state = "medintercom" frequency = MED_I_FREQ /obj/item/device/radio/intercom/department/security name = "station intercom (Security)" - icon_state = "medintercom" + icon_state = "secintercom" frequency = SEC_I_FREQ /obj/item/device/radio/intercom/entertainment diff --git a/code/game/objects/random/random.dm b/code/game/objects/random/random.dm index fb924bc9c4..5b1e33e5fd 100644 --- a/code/game/objects/random/random.dm +++ b/code/game/objects/random/random.dm @@ -839,4 +839,60 @@ var/list/random_useful_ random_junk_ -= /obj/item/trash/tray return pick(random_junk_) // Misc. actually useful stuff - return get_random_useful_type() \ No newline at end of file + return get_random_useful_type() + +/* + Selects one spawn point out of a group of points with the same ID and asks it to generate its items +*/ +var/list/multi_point_spawns + +/obj/random_multi + name = "random object spawn point" + desc = "This item type is used to spawn random objects at round-start. Only one spawn point for a given group id is selected." + icon = 'icons/misc/mark.dmi' + icon_state = "x3" + invisibility = INVISIBILITY_MAXIMUM + var/id // Group id + var/weight // Probability weight for this spawn point + +/obj/random_multi/initialize() + ..() + weight = max(1, round(weight)) + + if(!multi_point_spawns) + multi_point_spawns = list() + var/list/spawnpoints = multi_point_spawns[id] + if(!spawnpoints) + spawnpoints = list() + multi_point_spawns[id] = spawnpoints + spawnpoints[src] = weight + +/obj/random_multi/Destroy() + var/list/spawnpoints = multi_point_spawns[id] + spawnpoints -= src + if(!spawnpoints.len) + multi_point_spawns -= id + . = ..() + +/obj/random_multi/proc/generate_items() + return + +/obj/random_multi/single_item + var/item_path // Item type to spawn + +/obj/random_multi/single_item/generate_items() + new item_path(loc) + +/hook/roundstart/proc/generate_multi_spawn_items() + for(var/id in multi_point_spawns) + var/list/spawn_points = multi_point_spawns[id] + var/obj/random_multi/rm = pickweight(spawn_points) + rm.generate_items() + for(var/entry in spawn_points) + qdel(entry) + return 1 + +/obj/random_multi/single_item/captains_spare_id + name = "Multi Point - Captain's Spare" + id = "Captain's spare id" + item_path = /obj/item/weapon/card/id/captains_spare \ No newline at end of file diff --git a/code/game/objects/structures/flora.dm b/code/game/objects/structures/flora.dm index 9b731a0fa8..1bfd559b9c 100644 --- a/code/game/objects/structures/flora.dm +++ b/code/game/objects/structures/flora.dm @@ -92,10 +92,6 @@ icon = 'icons/obj/plants.dmi' icon_state = "plant-26" -/obj/structure/flora/pottedplant/xmas/New() - ..() - icon_state = "plant-xmas" - //newbushes @@ -218,4 +214,149 @@ name = "hanging skeleton model" icon = 'icons/obj/plants.dmi' icon_state = "hangskele" - desc = "It's an anatomical model of a human skeletal system made of plaster." \ No newline at end of file + desc = "It's an anatomical model of a human skeletal system made of plaster." + + +//potted plants credit: Flashkirby +/obj/structure/flora/pottedplant + name = "potted plant" + desc = "Really brings the room together." + icon = 'icons/obj/plants.dmi' + icon_state = "plant-01" + +/obj/structure/flora/pottedplant/large + name = "large potted plant" + desc = "This is a large plant. Three branches support pairs of waxy leaves." + icon_state = "plant-26" + +/obj/structure/flora/pottedplant/fern + name = "potted fern" + desc = "This is an ordinary looking fern. It looks like it could do with some water." + icon_state = "plant-02" + +/obj/structure/flora/pottedplant/overgrown + name = "overgrown potted plants" + desc = "This is an assortment of colourful plants. Some parts are overgrown." + icon_state = "plant-03" + +/obj/structure/flora/pottedplant/bamboo + name = "potted bamboo" + desc = "These are bamboo shoots. The tops looks like they've been cut short." + icon_state = "plant-04" + +/obj/structure/flora/pottedplant/largebush + name = "large potted bush" + desc = "This is a large bush. The leaves stick upwards in an odd fashion." + icon_state = "plant-05" + +/obj/structure/flora/pottedplant/thinbush + name = "thin potted bush" + desc = "This is a thin bush. It appears to be flowering." + icon_state = "plant-06" + +/obj/structure/flora/pottedplant/mysterious + name = "mysterious potted bulbs" + desc = "This is a mysterious looking plant. Touching the bulbs cause them to shrink." + icon_state = "plant-07" + +/obj/structure/flora/pottedplant/smalltree + name = "small potted tree" + desc = "This is a small tree. It is rather pleasant." + icon_state = "plant-08" + +/obj/structure/flora/pottedplant/unusual + name = "unusual potted plant" + desc = "This is an unusual plant. It's bulbous ends emit a soft blue light." + icon_state = "plant-09" + set_light(l_range = 1, l_power = 0.5, l_color = "#0000FF") + +/obj/structure/flora/pottedplant/orientaltree + name = "potted oriental tree" + desc = "This is a rather oriental style tree. It's flowers are bright pink." + icon_state = "plant-10" + +/obj/structure/flora/pottedplant/smallcactus + name = "small potted cactus" + desc = "This is a small cactus. Its needles are sharp." + icon_state = "plant-11" + +/obj/structure/flora/pottedplant/tall + name = "tall potted plant" + desc = "This is a tall plant. Tiny pores line its surface." + icon_state = "plant-12" + +/obj/structure/flora/pottedplant/sticky + name = "styicky potted plant" + desc = "This is an odd plant. Its sticky leaves trap insects." + icon_state = "plant-13" + +/obj/structure/flora/pottedplant/smelly + name = "smelly potted plant" + desc = "This is some kind of tropical plant. It reeks of rotten eggs." + icon_state = "plant-14" + +/obj/structure/flora/pottedplant/small + name = "small potted plant" + desc = "This is a pot of assorted small flora. Some look familiar." + icon_state = "plant-15" + +/obj/structure/flora/pottedplant/aquatic + name = "aquatic potted plant" + desc = "This is apparently an aquatic plant. It's probably fake." + icon_state = "plant-16" + +/obj/structure/flora/pottedplant/shoot + name = "small potted shoot" + desc = "This is a small shoot. It still needs time to grow." + icon_state = "plant-17" + +/obj/structure/flora/pottedplant/flower + name = "potted flower" + desc = "This is a slim plant. Sweet smelling flowers are supported by spindly stems." + icon_state = "plant-18" + +/obj/structure/flora/pottedplant/crystal + name = "crystalline potted plant" + desc = "These are rather cubic plants. Odd crystal formations grow on the end." + icon_state = "plant-19" + +/obj/structure/flora/pottedplant/subterranean + name = "subterranean potted plant" + desc = "This is a subterranean plant. It's bulbous ends glow faintly." + icon_state = "plant-20" + set_light(l_range = 1, l_power = 0.5, l_color = "#FF6633") + +/obj/structure/flora/pottedplant/minitree + name = "potted tree" + desc = "This is a miniature tree. Apparently it was grown to 1/5 scale." + icon_state = "plant-21" + +/obj/structure/flora/pottedplant/stoutbush + name = "stout potted bush" + desc = "This is a stout bush. Its leaves point up and outwards." + icon_state = "plant-22" + +/obj/structure/flora/pottedplant/drooping + name = "drooping potted plant" + desc = "This is a small plant. The drooping leaves make it look like its wilted." + icon_state = "plant-23" + +/obj/structure/flora/pottedplant/tropical + name = "tropical potted plant" + desc = "This is some kind of tropical plant. It hasn't begun to flower yet." + icon_state = "plant-24" + +/obj/structure/flora/pottedplant/dead + name = "dead potted plant" + desc = "This is the dried up remains of a dead plant. Someone should replace it." + icon_state = "plant-25" + +/obj/structure/flora/pottedplant/decorative + name = "decorative potted plant" + desc = "This is a decorative shrub. It's been trimmed into the shape of an apple." + icon_state = "applebush" + +/obj/structure/flora/pottedplant/xmas + name = "small christmas tree" + desc = "This is a tiny well lit decorative christmas tree." + icon_state = "plant-xmas" \ No newline at end of file diff --git a/code/game/objects/structures/signs.dm b/code/game/objects/structures/signs.dm index e8ce8bfb1c..5fed1a3577 100644 --- a/code/game/objects/structures/signs.dm +++ b/code/game/objects/structures/signs.dm @@ -122,6 +122,108 @@ desc = "A warning sign which reads 'NO SMOKING'." icon_state = "nosmoking2" +/obj/structure/sign/warning + name = "\improper WARNING" + icon_state = "securearea" + +/obj/structure/sign/warning/New() + ..() + desc = "A warning sign which reads '[name]'." + +/obj/structure/sign/warning/airlock + name = "\improper EXTERNAL AIRLOCK" + icon_state = "doors" + +/obj/structure/sign/warning/biohazard + name = "\improper BIOHAZARD" + icon_state = "bio" + +/obj/structure/sign/warning/bomb_range + name = "\improper BOMB RANGE" + icon_state = "blast" + +/obj/structure/sign/warning/caution + name = "\improper CAUTION" + +/obj/structure/sign/warning/compressed_gas + name = "\improper COMPRESSED GAS" + icon_state = "hikpa" + +/obj/structure/sign/warning/deathsposal + name = "\improper DISPOSAL LEADS TO SPACE" + icon_state = "deathsposal" + +/obj/structure/sign/warning/docking_area + name = "\improper KEEP CLEAR: DOCKING AREA" + +/obj/structure/sign/warning/engineering_access + name = "\improper ENGINEERING ACCESS" + +/obj/structure/sign/warning/fire + name = "\improper DANGER: FIRE" + icon_state = "fire" + +/obj/structure/sign/warning/high_voltage + name = "\improper HIGH VOLTAGE" + icon_state = "shock" + +/obj/structure/sign/warning/hot_exhaust + name = "\improper HOT EXHAUST" + icon_state = "fire" + +/obj/structure/sign/warning/internals_required + name = "\improper INTERNALS REQUIRED" + +/obj/structure/sign/warning/lethal_turrets + name = "\improper LETHAL TURRETS" + icon_state = "turrets" + +/obj/structure/sign/warning/lethal_turrets/New() + ..() + desc += " Enter at own risk!." + +/obj/structure/sign/warning/mail_delivery + name = "\improper MAIL DELIVERY" + +/obj/structure/sign/warning/moving_parts + name = "\improper MOVING PARTS" + +/obj/structure/sign/warning/nosmoking_1 + name = "\improper NO SMOKING" + icon_state = "nosmoking" + +/obj/structure/sign/warning/nosmoking_2 + name = "\improper NO SMOKING" + icon_state = "nosmoking2" + +/obj/structure/sign/warning/pods + name = "\improper ESCAPE PODS" + icon_state = "pods" + +/obj/structure/sign/warning/radioactive + name = "\improper RADIOACTIVE AREA" + icon_state = "radiation" + +/obj/structure/sign/warning/secure_area + name = "\improper SECURE AREA" + +/obj/structure/sign/warning/secure_area/armory + name = "\improper ARMORY" + +/obj/structure/sign/warning/server_room + name = "\improper SERVER ROOM" + +/obj/structure/sign/warning/siphon_valve + name = "\improper SIPHON VALVE" + +/obj/structure/sign/warning/vacuum + name = "\improper HARD VACUUM AHEAD" + icon_state = "space" + +/obj/structure/sign/warning/vent_port + name = "\improper EJECTION/VENTING PORT" + + /obj/structure/sign/redcross name = "medbay" desc = "The Intergalactic symbol of Medical institutions. You'll probably get help here." diff --git a/code/game/turfs/flooring/flooring_decals.dm b/code/game/turfs/flooring/flooring_decals.dm index 66434456f9..fc4dcd1d25 100644 --- a/code/game/turfs/flooring/flooring_decals.dm +++ b/code/game/turfs/flooring/flooring_decals.dm @@ -391,4 +391,16 @@ var/list/floor_decals = list() icon_state = "white_v" /obj/effect/floor_decal/sign/p - icon_state = "white_p" \ No newline at end of file + icon_state = "white_p" + +/obj/effect/floor_decal/sign/dock + icon_state = "white_d" + +/obj/effect/floor_decal/sign/dock/one + icon_state = "white_d1" + +/obj/effect/floor_decal/sign/dock/two + icon_state = "white_d2" + +/obj/effect/floor_decal/sign/dock/three + icon_state = "white_d3" \ No newline at end of file diff --git a/code/modules/economy/price_list.dm b/code/modules/economy/price_list.dm index 3d4589469b..6e101a0cde 100644 --- a/code/modules/economy/price_list.dm +++ b/code/modules/economy/price_list.dm @@ -705,16 +705,16 @@ /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza price_tag = 5 -/obj/item/weapon/reagent_containers/food/snacks/margheritaslice +/obj/item/weapon/reagent_containers/food/snacks/slice/margherita price_tag = 1 -/obj/item/weapon/reagent_containers/food/snacks/meatpizzaslice +/obj/item/weapon/reagent_containers/food/snacks/slice/meatpizza price_tag = 1 -/obj/item/weapon/reagent_containers/food/snacks/mushroompizzaslice +/obj/item/weapon/reagent_containers/food/snacks/slice/mushroompizza price_tag = 1 -/obj/item/weapon/reagent_containers/food/snacks/vegetablepizzaslice +/obj/item/weapon/reagent_containers/food/snacks/slice/vegetablepizza price_tag = 1 /obj/item/weapon/reagent_containers/food/snacks/ @@ -737,37 +737,37 @@ /obj/item/weapon/reagent_containers/food/snacks/sliceable/meatbread price_tag = 5 -/obj/item/weapon/reagent_containers/food/snacks/meatbreadslice +/obj/item/weapon/reagent_containers/food/snacks/slice/meatbread price_tag = 1 /obj/item/weapon/reagent_containers/food/snacks/sliceable/xenomeatbread price_tag = 5 -/obj/item/weapon/reagent_containers/food/snacks/xenomeatbreadslice +/obj/item/weapon/reagent_containers/food/snacks/slice/xenomeatbread price_tag = 1 /obj/item/weapon/reagent_containers/food/snacks/sliceable/bananabread price_tag = 5 -/obj/item/weapon/reagent_containers/food/snacks/bananabreadslice +/obj/item/weapon/reagent_containers/food/snacks/slice/bananabread price_tag = 1 /obj/item/weapon/reagent_containers/food/snacks/sliceable/tofubread price_tag = 5 -/obj/item/weapon/reagent_containers/food/snacks/tofubreadslice +/obj/item/weapon/reagent_containers/food/snacks/slice/tofubread price_tag = 1 /obj/item/weapon/reagent_containers/food/snacks/sliceable/bread price_tag = 5 -/obj/item/weapon/reagent_containers/food/snacks/breadslice +/obj/item/weapon/reagent_containers/food/snacks/slice/bread price_tag = 1 /obj/item/weapon/reagent_containers/food/snacks/sliceable/creamcheesebread price_tag = 5 -/obj/item/weapon/reagent_containers/food/snacks/creamcheesebreadslice +/obj/item/weapon/reagent_containers/food/snacks/slice/creamcheesebread price_tag = 1 @@ -845,67 +845,67 @@ /obj/item/weapon/reagent_containers/food/snacks/sliceable/carrotcake price_tag = 5 -/obj/item/weapon/reagent_containers/food/snacks/carrotcakeslice +/obj/item/weapon/reagent_containers/food/snacks/slice/carrotcake price_tag = 1 /obj/item/weapon/reagent_containers/food/snacks/sliceable/braincake price_tag = 5 -/obj/item/weapon/reagent_containers/food/snacks/braincakeslice +/obj/item/weapon/reagent_containers/food/snacks/slice/braincake price_tag = 1 /obj/item/weapon/reagent_containers/food/snacks/sliceable/cheesecake price_tag = 5 -/obj/item/weapon/reagent_containers/food/snacks/cheesecakeslice +/obj/item/weapon/reagent_containers/food/snacks/slice/cheesecake price_tag = 1 /obj/item/weapon/reagent_containers/food/snacks/sliceable/plaincake price_tag = 5 -/obj/item/weapon/reagent_containers/food/snacks/plaincakeslice +/obj/item/weapon/reagent_containers/food/snacks/slice/plaincake price_tag = 1 /obj/item/weapon/reagent_containers/food/snacks/sliceable/orangecake price_tag = 5 -/obj/item/weapon/reagent_containers/food/snacks/orangecakeslice +/obj/item/weapon/reagent_containers/food/snacks/slice/orangecake price_tag = 1 /obj/item/weapon/reagent_containers/food/snacks/sliceable/limecake price_tag = 5 -/obj/item/weapon/reagent_containers/food/snacks/limecakeslice +/obj/item/weapon/reagent_containers/food/snacks/slice/limecake price_tag = 1 /obj/item/weapon/reagent_containers/food/snacks/sliceable/lemoncake price_tag = 5 -/obj/item/weapon/reagent_containers/food/snacks/lemoncakeslice +/obj/item/weapon/reagent_containers/food/snacks/slice/lemoncake price_tag = 1 /obj/item/weapon/reagent_containers/food/snacks/sliceable/chocolatecake price_tag = 5 -/obj/item/weapon/reagent_containers/food/snacks/chocolatecakeslice +/obj/item/weapon/reagent_containers/food/snacks/slice/chocolatecake price_tag = 1 /obj/item/weapon/reagent_containers/food/snacks/sliceable/birthdaycake price_tag = 5 -/obj/item/weapon/reagent_containers/food/snacks/birthdaycakeslice +/obj/item/weapon/reagent_containers/food/snacks/slice/birthdaycake price_tag = 1 /obj/item/weapon/reagent_containers/food/snacks/sliceable/applecake price_tag = 5 -/obj/item/weapon/reagent_containers/food/snacks/applecakeslice +/obj/item/weapon/reagent_containers/food/snacks/slice/applecake price_tag = 1 /obj/item/weapon/reagent_containers/food/snacks/sliceable/pumpkinpie price_tag = 5 -/obj/item/weapon/reagent_containers/food/snacks/pumpkinpieslice +/obj/item/weapon/reagent_containers/food/snacks/slice/pumpkinpie price_tag = 1 diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 4774316779..013dc6ebad 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -318,40 +318,17 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp M.antagHUD = 1 src << "\blue AntagHUD Enabled" -/mob/observer/dead/proc/dead_tele(A in ghostteleportlocs) +/mob/observer/dead/proc/dead_tele(var/area/A in return_sorted_areas()) set category = "Ghost" set name = "Teleport" - set desc= "Teleport to a location" + set desc = "Teleport to a location" + if(!istype(usr, /mob/observer/dead)) usr << "Not when you're not dead!" return - usr.verbs -= /mob/observer/dead/proc/dead_tele - spawn(30) - usr.verbs += /mob/observer/dead/proc/dead_tele - var/area/thearea = ghostteleportlocs[A] - if(!thearea) return - var/list/L = list() - var/holyblock = 0 - - if(usr.invisibility <= SEE_INVISIBLE_LIVING || (usr.mind in cult.current_antagonists)) - for(var/turf/T in get_area_turfs(thearea.type)) - if(!T.holy) - L+=T - else - holyblock = 1 - else - for(var/turf/T in get_area_turfs(thearea.type)) - L+=T - - if(!L || !L.len) - if(holyblock) - usr << "This area has been entirely made into sacred grounds, you cannot enter it while you are in this plane of existence!" - else - usr << "No area available." - - usr.forceMove(pick(L)) - following = null + usr.forceMove(pick(get_area_turfs(A))) + usr.on_mob_jump() /mob/observer/dead/verb/follow(input in getmobs()) set category = "Ghost" diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index 7c29c7f85d..fba467a6a8 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -82,6 +82,20 @@ var/datum/gender/T = gender_datums[get_gender()] if(skipjumpsuit && skipface) //big suits/masks/helmets make it hard to tell their gender T = gender_datums[PLURAL] + + else if(species && species.ambiguous_genders) + var/can_detect_gender = FALSE + if(isobserver(user)) // Ghosts are all knowing. + can_detect_gender = TRUE + if(issilicon(user)) // Borgs are too because science. + can_detect_gender = TRUE + else if(ishuman(user)) + var/mob/living/carbon/human/H = user + if(H.species && istype(species, H.species)) + can_detect_gender = TRUE + + if(!can_detect_gender) + T = gender_datums[PLURAL] // Species with ambiguous_genders will not show their true gender upon examine if the examiner is not also the same species. else if(icon) msg += "\icon[icon] " //fucking BYOND: this should stop dreamseeker crashing if we -somehow- examine somebody before their icon is generated diff --git a/code/modules/mob/living/carbon/human/species/species.dm b/code/modules/mob/living/carbon/human/species/species.dm index a8cb222436..b6f69959d9 100644 --- a/code/modules/mob/living/carbon/human/species/species.dm +++ b/code/modules/mob/living/carbon/human/species/species.dm @@ -156,6 +156,7 @@ ) var/list/genders = list(MALE, FEMALE) + var/ambiguous_genders = FALSE // If true, people examining a member of this species whom are not also the same species will see them as gender neutral. Because aliens. // Bump vars var/bump_flag = HUMAN // What are we considered to be when bumped? diff --git a/code/modules/mob/living/carbon/human/species/station/seromi.dm b/code/modules/mob/living/carbon/human/species/station/seromi.dm index df2bbd8cc8..120400413b 100644 --- a/code/modules/mob/living/carbon/human/species/station/seromi.dm +++ b/code/modules/mob/living/carbon/human/species/station/seromi.dm @@ -38,6 +38,8 @@ blood_volume = 400 hunger_factor = 0.2 + ambiguous_genders = TRUE + spawn_flags = SPECIES_CAN_JOIN | SPECIES_IS_WHITELISTED appearance_flags = HAS_HAIR_COLOR | HAS_SKIN_COLOR | HAS_EYE_COLOR bump_flag = MONKEY diff --git a/code/modules/mob/living/carbon/human/species/station/station.dm b/code/modules/mob/living/carbon/human/species/station/station.dm index 9ac4079098..2707b2bac7 100644 --- a/code/modules/mob/living/carbon/human/species/station/station.dm +++ b/code/modules/mob/living/carbon/human/species/station/station.dm @@ -162,6 +162,8 @@ darksight = 4 + ambiguous_genders = TRUE + spawn_flags = SPECIES_CAN_JOIN | SPECIES_IS_WHITELISTED appearance_flags = HAS_HAIR_COLOR | HAS_LIPS | HAS_UNDERWEAR | HAS_SKIN_COLOR diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 3d38d909de..62b065d091 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -690,7 +690,7 @@ overlays += "eyes-[module_sprites[icontype]]" if(opened) - var/panelprefix = custom_sprite ? src.ckey : "ov" + var/panelprefix = custom_sprite ? "[src.ckey]-[src.name]" : "ov" if(wiresexposed) overlays += "[panelprefix]-openpanel +w" else if(cell) diff --git a/code/modules/paperwork/photocopier.dm b/code/modules/paperwork/photocopier.dm index 5373a71781..74acf07ddb 100644 --- a/code/modules/paperwork/photocopier.dm +++ b/code/modules/paperwork/photocopier.dm @@ -67,14 +67,18 @@ break if (istype(copyitem, /obj/item/weapon/paper)) + playsound(loc, "sound/machines/copier.ogg", 100, 1) + sleep(11) copy(copyitem) - sleep(15) else if (istype(copyitem, /obj/item/weapon/photo)) + playsound(loc, "sound/machines/copier.ogg", 100, 1) + sleep(11) photocopy(copyitem) - sleep(15) else if (istype(copyitem, /obj/item/weapon/paper_bundle)) + sleep(11) + playsound(loc, "sound/machines/copier.ogg", 100, 1) var/obj/item/weapon/paper_bundle/B = bundlecopy(copyitem) - sleep(15*B.pages.len) + sleep(11*B.pages.len) else usr << "\The [copyitem] can't be copied by \the [src]." break @@ -123,6 +127,7 @@ copyitem = O O.loc = src user << "You insert \the [O] into \the [src]." + playsound(loc, "sound/machines/click.ogg", 100, 1) flick(insert_anim, src) else user << "There is already something in \the [src]." diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm index 38f558721e..5be9ed93c2 100644 --- a/code/modules/reagents/Chemistry-Machinery.dm +++ b/code/modules/reagents/Chemistry-Machinery.dm @@ -47,27 +47,27 @@ /obj/machinery/chem_master/attackby(var/obj/item/weapon/B as obj, var/mob/user as mob) - if(istype(B, /obj/item/weapon/reagent_containers/glass)) + if(istype(B, /obj/item/weapon/reagent_containers/glass) || istype(B, /obj/item/weapon/reagent_containers/food)) if(src.beaker) - user << "A beaker is already loaded into the machine." + user << "\A [beaker] is already loaded into the machine." return src.beaker = B user.drop_item() B.loc = src - user << "You add the beaker to the machine!" + user << "You add \the [B] to the machine!" icon_state = "mixer1" else if(istype(B, /obj/item/weapon/storage/pill_bottle)) if(src.loaded_pill_bottle) - user << "A pill bottle is already loaded into the machine." + user << "A \the [loaded_pill_bottle] s already loaded into the machine." return src.loaded_pill_bottle = B user.drop_item() B.loc = src - user << "You add the pill bottle into the dispenser slot!" + user << "You add \the [loaded_pill_bottle] into the dispenser slot!" return /obj/machinery/chem_master/attack_hand(mob/user as mob) diff --git a/code/modules/reagents/reagent_containers/food/lunch.dm b/code/modules/reagents/reagent_containers/food/lunch.dm index 794d7f69dd..1ab8cf3a43 100644 --- a/code/modules/reagents/reagent_containers/food/lunch.dm +++ b/code/modules/reagents/reagent_containers/food/lunch.dm @@ -1,11 +1,11 @@ var/list/lunchables_lunches_ = list(/obj/item/weapon/reagent_containers/food/snacks/sandwich, - /obj/item/weapon/reagent_containers/food/snacks/meatbreadslice, - /obj/item/weapon/reagent_containers/food/snacks/tofubreadslice, - /obj/item/weapon/reagent_containers/food/snacks/creamcheesebreadslice, - /obj/item/weapon/reagent_containers/food/snacks/margheritaslice, - /obj/item/weapon/reagent_containers/food/snacks/meatpizzaslice, - /obj/item/weapon/reagent_containers/food/snacks/mushroompizzaslice, - /obj/item/weapon/reagent_containers/food/snacks/vegetablepizzaslice, + /obj/item/weapon/reagent_containers/food/snacks/slice/meatbread/filled, + /obj/item/weapon/reagent_containers/food/snacks/slice/tofubread/filled, + /obj/item/weapon/reagent_containers/food/snacks/slice/creamcheesebread/filled, + /obj/item/weapon/reagent_containers/food/snacks/slice/margherita/filled, + /obj/item/weapon/reagent_containers/food/snacks/slice/meatpizza/filled, + /obj/item/weapon/reagent_containers/food/snacks/slice/mushroompizza/filled, + /obj/item/weapon/reagent_containers/food/snacks/slice/vegetablepizza/filled, /obj/item/weapon/reagent_containers/food/snacks/tastybread, /obj/item/weapon/reagent_containers/food/snacks/liquidfood, /obj/item/weapon/reagent_containers/food/snacks/jellysandwich/cherry, @@ -26,17 +26,17 @@ var/list/lunchables_snacks_ = list(/obj/item/weapon/reagent_containers/food/snac /obj/item/weapon/reagent_containers/food/snacks/cherrypie, /obj/item/weapon/reagent_containers/food/snacks/plumphelmetbiscuit, /obj/item/weapon/reagent_containers/food/snacks/appletart, - /obj/item/weapon/reagent_containers/food/snacks/carrotcakeslice, - /obj/item/weapon/reagent_containers/food/snacks/cheesecakeslice, - /obj/item/weapon/reagent_containers/food/snacks/plaincakeslice, - /obj/item/weapon/reagent_containers/food/snacks/orangecakeslice, - /obj/item/weapon/reagent_containers/food/snacks/limecakeslice, - /obj/item/weapon/reagent_containers/food/snacks/lemoncakeslice, - /obj/item/weapon/reagent_containers/food/snacks/chocolatecakeslice, - /obj/item/weapon/reagent_containers/food/snacks/birthdaycakeslice, + /obj/item/weapon/reagent_containers/food/snacks/slice/carrotcake/filled, + /obj/item/weapon/reagent_containers/food/snacks/slice/cheesecake/filled, + /obj/item/weapon/reagent_containers/food/snacks/slice/plaincake/filled, + /obj/item/weapon/reagent_containers/food/snacks/slice/orangecake/filled, + /obj/item/weapon/reagent_containers/food/snacks/slice/limecake/filled, + /obj/item/weapon/reagent_containers/food/snacks/slice/lemoncake/filled, + /obj/item/weapon/reagent_containers/food/snacks/slice/chocolatecake/filled, + /obj/item/weapon/reagent_containers/food/snacks/slice/birthdaycake/filled, /obj/item/weapon/reagent_containers/food/snacks/watermelonslice, - /obj/item/weapon/reagent_containers/food/snacks/applecakeslice, - /obj/item/weapon/reagent_containers/food/snacks/pumpkinpieslice, + /obj/item/weapon/reagent_containers/food/snacks/slice/applecake/filled, + /obj/item/weapon/reagent_containers/food/snacks/slice/pumpkinpie/filled, /obj/item/weapon/reagent_containers/food/snacks/skrellsnacks) var/list/lunchables_drinks_ = list(/obj/item/weapon/reagent_containers/food/drinks/cans/cola, diff --git a/code/modules/reagents/reagent_containers/food/snacks.dm b/code/modules/reagents/reagent_containers/food/snacks.dm index dd58e8a51e..8bb92f2eeb 100644 --- a/code/modules/reagents/reagent_containers/food/snacks.dm +++ b/code/modules/reagents/reagent_containers/food/snacks.dm @@ -194,24 +194,23 @@ if (W.w_class >= src.w_class || is_robot_module(W)) return - user << "\red You slip [W] inside [src]." - user.remove_from_mob(W) - W.dropped(user) + to_chat(user, "You slip \the [W] inside \the [src].") + user.drop_from_inventory(W, src) add_fingerprint(user) contents += W return if (has_edge(W)) if (!can_slice_here) - user << "\red You cannot slice [src] here! You need a table or at least a tray to do it." + to_chat(user, "You cannot slice \the [src] here! You need a table or at least a tray to do it.") return var/slices_lost = 0 if (W.w_class > 3) - user.visible_message("\blue [user] crudely slices \the [src] with [W]!", "\blue You crudely slice \the [src] with your [W]!") + user.visible_message("\The [user] crudely slices \the [src] with [W]!", "You crudely slice \the [src] with your [W]!") slices_lost = rand(1,min(1,round(slices_num/2))) else - user.visible_message("\blue [user] slices \the [src]!", "\blue You slice \the [src]!") + user.visible_message("\The [user] slices \the [src]!", "You slice \the [src]!") var/reagents_per_slice = reagents.total_volume/slices_num for(var/i=1 to (slices_num-slices_lost)) @@ -2328,54 +2327,81 @@ /obj/item/weapon/reagent_containers/food/snacks/sliceable w_class = ITEMSIZE_NORMAL //Whole pizzas and cakes shouldn't fit in a pocket, you can slice them if you want to do that. +/** + * A food item slice + * + * This path contains some extra code for spawning slices pre-filled with + * reagents. + */ +/obj/item/weapon/reagent_containers/food/snacks/slice + name = "slice of... something" + var/whole_path // path for the item from which this slice comes + var/filled = FALSE // should the slice spawn with any reagents + +/** + * Spawn a new slice of food + * + * If the slice's filled is TRUE, this will also fill the slice with the + * appropriate amount of reagents. Note that this is done by spawning a new + * whole item, transferring the reagents and deleting the whole item, which may + * have performance implications. + */ +/obj/item/weapon/reagent_containers/food/snacks/slice/New() + ..() + if(filled) + var/obj/item/weapon/reagent_containers/food/snacks/whole = new whole_path() + if(whole && whole.slices_num) + var/reagent_amount = whole.reagents.total_volume/whole.slices_num + whole.reagents.trans_to_obj(src, reagent_amount) + + qdel(whole) + /obj/item/weapon/reagent_containers/food/snacks/sliceable/meatbread name = "meatbread loaf" desc = "The culinary base of every self-respecting eloquen/tg/entleman." icon_state = "meatbread" - slice_path = /obj/item/weapon/reagent_containers/food/snacks/meatbreadslice + slice_path = /obj/item/weapon/reagent_containers/food/snacks/slice/meatbread/filled slices_num = 5 filling_color = "#FF7575" - center_of_mass = list("x"=16, "y"=9) - nutriment_amt = 10 + center_of_mass = list("x"=19, "y"=9) nutriment_desc = list("bread" = 10) + nutriment_amt = 10 /obj/item/weapon/reagent_containers/food/snacks/sliceable/meatbread/New() ..() reagents.add_reagent("protein", 20) bitesize = 2 -/obj/item/weapon/reagent_containers/food/snacks/meatbreadslice +/obj/item/weapon/reagent_containers/food/snacks/slice/meatbread/filled name = "meatbread slice" desc = "A slice of delicious meatbread." icon_state = "meatbreadslice" trash = /obj/item/trash/plate filling_color = "#FF7575" bitesize = 2 - center_of_mass = list("x"=16, "y"=13) + center_of_mass = list("x"=16, "y"=16) + whole_path = /obj/item/weapon/reagent_containers/food/snacks/sliceable/meatbread -/obj/item/weapon/reagent_containers/food/snacks/meatbreadslice/New() - ..() - if(!(reagents.total_volume)) - reagents.add_reagent("protein", 4) - reagents.add_reagent("nutriment", 2) +/obj/item/weapon/reagent_containers/food/snacks/slice/meatbread/filled/filled + filled = TRUE /obj/item/weapon/reagent_containers/food/snacks/sliceable/xenomeatbread name = "xenomeatbread loaf" desc = "The culinary base of every self-respecting eloquent gentleman. Extra Heretical." icon_state = "xenomeatbread" - slice_path = /obj/item/weapon/reagent_containers/food/snacks/xenomeatbreadslice + slice_path = /obj/item/weapon/reagent_containers/food/snacks/slice/xenomeatbread/filled slices_num = 5 filling_color = "#8AFF75" center_of_mass = list("x"=16, "y"=9) - nutriment_amt = 10 nutriment_desc = list("bread" = 10) + nutriment_amt = 10 /obj/item/weapon/reagent_containers/food/snacks/sliceable/xenomeatbread/New() ..() reagents.add_reagent("protein", 20) bitesize = 2 -/obj/item/weapon/reagent_containers/food/snacks/xenomeatbreadslice +/obj/item/weapon/reagent_containers/food/snacks/slice/xenomeatbread/filled name = "xenomeatbread slice" desc = "A slice of delicious meatbread. Extra Heretical." icon_state = "xenobreadslice" @@ -2383,30 +2409,29 @@ filling_color = "#8AFF75" bitesize = 2 center_of_mass = list("x"=16, "y"=13) + whole_path = /obj/item/weapon/reagent_containers/food/snacks/sliceable/xenomeatbread -/obj/item/weapon/reagent_containers/food/snacks/xenomeatbreadslice/New() - ..() - if(!(reagents.total_volume)) - reagents.add_reagent("protein", 4) - reagents.add_reagent("nutriment", 2) + +/obj/item/weapon/reagent_containers/food/snacks/slice/xenomeatbread/filled/filled + filled = TRUE /obj/item/weapon/reagent_containers/food/snacks/sliceable/bananabread name = "Banana-nut bread" desc = "A heavenly and filling treat." icon_state = "bananabread" - slice_path = /obj/item/weapon/reagent_containers/food/snacks/bananabreadslice + slice_path = /obj/item/weapon/reagent_containers/food/snacks/slice/bananabread slices_num = 5 filling_color = "#EDE5AD" center_of_mass = list("x"=16, "y"=9) - nutriment_amt = 10 nutriment_desc = list("bread" = 10) + nutriment_amt = 10 /obj/item/weapon/reagent_containers/food/snacks/sliceable/bananabread/New() ..() reagents.add_reagent("banana", 20) bitesize = 2 -/obj/item/weapon/reagent_containers/food/snacks/bananabreadslice +/obj/item/weapon/reagent_containers/food/snacks/slice/bananabread name = "Banana-nut bread slice" desc = "A slice of delicious banana bread." icon_state = "bananabreadslice" @@ -2414,30 +2439,27 @@ filling_color = "#EDE5AD" bitesize = 2 center_of_mass = list("x"=16, "y"=8) + whole_path = /obj/item/weapon/reagent_containers/food/snacks/sliceable/bananabread -/obj/item/weapon/reagent_containers/food/snacks/bananabreadslice/New() - ..() - if(!(reagents.total_volume)) - reagents.add_reagent("banana", 4) - reagents.add_reagent("nutriment", 4) +/obj/item/weapon/reagent_containers/food/snacks/slice/bananabread/filled + filled = TRUE /obj/item/weapon/reagent_containers/food/snacks/sliceable/tofubread name = "Tofubread" icon_state = "Like meatbread but for vegetarians. Not guaranteed to give superpowers." icon_state = "tofubread" - slice_path = /obj/item/weapon/reagent_containers/food/snacks/tofubreadslice + slice_path = /obj/item/weapon/reagent_containers/food/snacks/slice/tofubread slices_num = 5 filling_color = "#F7FFE0" center_of_mass = list("x"=16, "y"=9) - nutriment_amt = 30 - nutriment_desc = list("bread" = 15, "tofu" = 15) + nutriment_desc = list("tofu" = 10) + nutriment_amt = 10 /obj/item/weapon/reagent_containers/food/snacks/sliceable/tofubread/New() ..() - reagents.add_reagent("nutriment", 30) bitesize = 2 -/obj/item/weapon/reagent_containers/food/snacks/tofubreadslice +/obj/item/weapon/reagent_containers/food/snacks/slice/tofubread name = "Tofubread slice" desc = "A slice of delicious tofubread." icon_state = "tofubreadslice" @@ -2445,30 +2467,29 @@ filling_color = "#F7FFE0" bitesize = 2 center_of_mass = list("x"=16, "y"=13) + whole_path = /obj/item/weapon/reagent_containers/food/snacks/sliceable/tofubread -/obj/item/weapon/reagent_containers/food/snacks/tofubreadslice/New() - ..() - if(!(reagents.total_volume)) - reagents.add_reagent("nutriment", 6) +/obj/item/weapon/reagent_containers/food/snacks/slice/tofubread/filled + filled = TRUE /obj/item/weapon/reagent_containers/food/snacks/sliceable/carrotcake name = "Carrot Cake" desc = "A favorite desert of a certain wascally wabbit. Not a lie." icon_state = "carrotcake" - slice_path = /obj/item/weapon/reagent_containers/food/snacks/carrotcakeslice + slice_path = /obj/item/weapon/reagent_containers/food/snacks/slice/carrotcake slices_num = 5 filling_color = "#FFD675" center_of_mass = list("x"=16, "y"=10) - nutriment_amt = 25 nutriment_desc = list("cake" = 10, "sweetness" = 10, "carrot" = 15) + nutriment_amt = 25 /obj/item/weapon/reagent_containers/food/snacks/sliceable/carrotcake/New() ..() reagents.add_reagent("imidazoline", 10) bitesize = 2 -/obj/item/weapon/reagent_containers/food/snacks/carrotcakeslice +/obj/item/weapon/reagent_containers/food/snacks/slice/carrotcake name = "Carrot Cake slice" desc = "Carrotty slice of Carrot Cake, carrots are good for your eyes! Also not a lie." icon_state = "carrotcake_slice" @@ -2476,23 +2497,21 @@ filling_color = "#FFD675" bitesize = 2 center_of_mass = list("x"=16, "y"=14) + whole_path = /obj/item/weapon/reagent_containers/food/snacks/sliceable/carrotcake -/obj/item/weapon/reagent_containers/food/snacks/carrotcakeslice/New() - ..() - if(!(reagents.total_volume)) - reagents.add_reagent("imidazoline", 2) - reagents.add_reagent("nutriment", 5) +/obj/item/weapon/reagent_containers/food/snacks/slice/carrotcake/filled + filled = TRUE /obj/item/weapon/reagent_containers/food/snacks/sliceable/braincake name = "Brain Cake" desc = "A squishy cake-thing." icon_state = "braincake" - slice_path = /obj/item/weapon/reagent_containers/food/snacks/braincakeslice + slice_path = /obj/item/weapon/reagent_containers/food/snacks/slice/braincake slices_num = 5 filling_color = "#E6AEDB" center_of_mass = list("x"=16, "y"=10) - nutriment_amt = 5 nutriment_desc = list("cake" = 10, "sweetness" = 10, "slime" = 15) + nutriment_amt = 5 /obj/item/weapon/reagent_containers/food/snacks/sliceable/braincake/New() ..() @@ -2500,7 +2519,7 @@ reagents.add_reagent("alkysine", 10) bitesize = 2 -/obj/item/weapon/reagent_containers/food/snacks/braincakeslice +/obj/item/weapon/reagent_containers/food/snacks/slice/braincake name = "Brain Cake slice" desc = "Lemme tell you something about prions. THEY'RE DELICIOUS." icon_state = "braincakeslice" @@ -2508,60 +2527,52 @@ filling_color = "#E6AEDB" bitesize = 2 center_of_mass = list("x"=16, "y"=12) + whole_path = /obj/item/weapon/reagent_containers/food/snacks/sliceable/braincake -/obj/item/weapon/reagent_containers/food/snacks/braincakeslice/New() - ..() - if(!(reagents.total_volume)) - reagents.add_reagent("protein", 5) - reagents.add_reagent("nutriment", 1) - reagents.add_reagent("alkysine", 2) +/obj/item/weapon/reagent_containers/food/snacks/slice/braincake/filled + filled = TRUE /obj/item/weapon/reagent_containers/food/snacks/sliceable/cheesecake name = "Cheese Cake" desc = "DANGEROUSLY cheesy." icon_state = "cheesecake" - slice_path = /obj/item/weapon/reagent_containers/food/snacks/cheesecakeslice + slice_path = /obj/item/weapon/reagent_containers/food/snacks/slice/cheesecake slices_num = 5 filling_color = "#FAF7AF" center_of_mass = list("x"=16, "y"=10) - nutriment_amt = 10 nutriment_desc = list("cake" = 10, "cream" = 10, "cheese" = 15) + nutriment_amt = 10 /obj/item/weapon/reagent_containers/food/snacks/sliceable/cheesecake/New() ..() reagents.add_reagent("protein", 15) bitesize = 2 -/obj/item/weapon/reagent_containers/food/snacks/cheesecakeslice +/obj/item/weapon/reagent_containers/food/snacks/slice/cheesecake name = "Cheese Cake slice" - desc = "Slice of pure cheestisfaction" + desc = "Slice of pure cheestisfaction." icon_state = "cheesecake_slice" trash = /obj/item/trash/plate filling_color = "#FAF7AF" bitesize = 2 center_of_mass = list("x"=16, "y"=14) + whole_path = /obj/item/weapon/reagent_containers/food/snacks/sliceable/cheesecake -/obj/item/weapon/reagent_containers/food/snacks/cheesecakeslice/New() - ..() - if(!(reagents.total_volume)) - reagents.add_reagent("protein", 3) - reagents.add_reagent("nutriment", 2) +/obj/item/weapon/reagent_containers/food/snacks/slice/cheesecake/filled + filled = TRUE /obj/item/weapon/reagent_containers/food/snacks/sliceable/plaincake name = "Vanilla Cake" desc = "A plain cake, not a lie." icon_state = "plaincake" - slice_path = /obj/item/weapon/reagent_containers/food/snacks/plaincakeslice + slice_path = /obj/item/weapon/reagent_containers/food/snacks/slice/plaincake slices_num = 5 filling_color = "#F7EDD5" center_of_mass = list("x"=16, "y"=10) - nutriment_amt = 20 nutriment_desc = list("cake" = 10, "sweetness" = 10, "vanilla" = 15) + nutriment_amt = 20 -/obj/item/weapon/reagent_containers/food/snacks/sliceable/plaincake/New() - ..() - -/obj/item/weapon/reagent_containers/food/snacks/plaincakeslice +/obj/item/weapon/reagent_containers/food/snacks/slice/plaincake name = "Vanilla Cake slice" desc = "Just a slice of cake, it is enough for everyone." icon_state = "plaincake_slice" @@ -2569,27 +2580,23 @@ filling_color = "#F7EDD5" bitesize = 2 center_of_mass = list("x"=16, "y"=14) + whole_path = /obj/item/weapon/reagent_containers/food/snacks/sliceable/plaincake -/obj/item/weapon/reagent_containers/food/snacks/plaincakeslice/New() - ..() - if(!(reagents.total_volume)) - reagents.add_reagent("nutriment", 4) +/obj/item/weapon/reagent_containers/food/snacks/slice/plaincake/filled + filled = TRUE /obj/item/weapon/reagent_containers/food/snacks/sliceable/orangecake name = "Orange Cake" desc = "A cake with added orange." icon_state = "orangecake" - slice_path = /obj/item/weapon/reagent_containers/food/snacks/orangecakeslice + slice_path = /obj/item/weapon/reagent_containers/food/snacks/slice/orangecake slices_num = 5 filling_color = "#FADA8E" center_of_mass = list("x"=16, "y"=10) - nutriment_amt = 20 nutriment_desc = list("cake" = 10, "sweetness" = 10, "orange" = 15) + nutriment_amt = 20 -/obj/item/weapon/reagent_containers/food/snacks/sliceable/orangecake/New() - ..() - -/obj/item/weapon/reagent_containers/food/snacks/orangecakeslice +/obj/item/weapon/reagent_containers/food/snacks/slice/orangecake name = "Orange Cake slice" desc = "Just a slice of cake, it is enough for everyone." icon_state = "orangecake_slice" @@ -2597,28 +2604,25 @@ filling_color = "#FADA8E" bitesize = 2 center_of_mass = list("x"=16, "y"=14) + whole_path = /obj/item/weapon/reagent_containers/food/snacks/sliceable/orangecake + +/obj/item/weapon/reagent_containers/food/snacks/slice/orangecake/filled + filled = TRUE -/obj/item/weapon/reagent_containers/food/snacks/orangecakeslice/New() - ..() - if(!(reagents.total_volume)) - reagents.add_reagent("nutriment", 4) /obj/item/weapon/reagent_containers/food/snacks/sliceable/limecake name = "Lime Cake" desc = "A cake with added lime." icon_state = "limecake" - slice_path = /obj/item/weapon/reagent_containers/food/snacks/limecakeslice + slice_path = /obj/item/weapon/reagent_containers/food/snacks/slice/limecake slices_num = 5 filling_color = "#CBFA8E" center_of_mass = list("x"=16, "y"=10) - nutriment_amt = 20 nutriment_desc = list("cake" = 10, "sweetness" = 10, "lime" = 15) + nutriment_amt = 20 -/obj/item/weapon/reagent_containers/food/snacks/sliceable/limecake/New() - ..() - reagents.add_reagent("nutriment", 20) -/obj/item/weapon/reagent_containers/food/snacks/limecakeslice +/obj/item/weapon/reagent_containers/food/snacks/slice/limecake name = "Lime Cake slice" desc = "Just a slice of cake, it is enough for everyone." icon_state = "limecake_slice" @@ -2626,27 +2630,24 @@ filling_color = "#CBFA8E" bitesize = 2 center_of_mass = list("x"=16, "y"=14) + whole_path = /obj/item/weapon/reagent_containers/food/snacks/sliceable/limecake -/obj/item/weapon/reagent_containers/food/snacks/limecakeslice/New() - ..() - if(!(reagents.total_volume)) - reagents.add_reagent("nutriment", 4) +/obj/item/weapon/reagent_containers/food/snacks/slice/limecake/filled + filled = TRUE /obj/item/weapon/reagent_containers/food/snacks/sliceable/lemoncake name = "Lemon Cake" desc = "A cake with added lemon." icon_state = "lemoncake" - slice_path = /obj/item/weapon/reagent_containers/food/snacks/lemoncakeslice + slice_path = /obj/item/weapon/reagent_containers/food/snacks/slice/lemoncake slices_num = 5 filling_color = "#FAFA8E" center_of_mass = list("x"=16, "y"=10) - nutriment_amt = 20 nutriment_desc = list("cake" = 10, "sweetness" = 10, "lemon" = 15) + nutriment_amt = 20 -/obj/item/weapon/reagent_containers/food/snacks/sliceable/lemoncake/New() - ..() -/obj/item/weapon/reagent_containers/food/snacks/lemoncakeslice +/obj/item/weapon/reagent_containers/food/snacks/slice/lemoncake name = "Lemon Cake slice" desc = "Just a slice of cake, it is enough for everyone." icon_state = "lemoncake_slice" @@ -2654,27 +2655,23 @@ filling_color = "#FAFA8E" bitesize = 2 center_of_mass = list("x"=16, "y"=14) + whole_path = /obj/item/weapon/reagent_containers/food/snacks/sliceable/lemoncake -/obj/item/weapon/reagent_containers/food/snacks/lemoncakeslice/New() - ..() - if(!(reagents.total_volume)) - reagents.add_reagent("nutriment", 4) +/obj/item/weapon/reagent_containers/food/snacks/slice/lemoncake/filled + filled = TRUE /obj/item/weapon/reagent_containers/food/snacks/sliceable/chocolatecake name = "Chocolate Cake" - desc = "A cake with added chocolate" + desc = "A cake with added chocolate." icon_state = "chocolatecake" - slice_path = /obj/item/weapon/reagent_containers/food/snacks/chocolatecakeslice + slice_path = /obj/item/weapon/reagent_containers/food/snacks/slice/chocolatecake slices_num = 5 filling_color = "#805930" center_of_mass = list("x"=16, "y"=10) - nutriment_amt = 20 nutriment_desc = list("cake" = 10, "sweetness" = 10, "chocolate" = 15) + nutriment_amt = 20 -/obj/item/weapon/reagent_containers/food/snacks/sliceable/chocolatecake/New() - ..() - -/obj/item/weapon/reagent_containers/food/snacks/chocolatecakeslice +/obj/item/weapon/reagent_containers/food/snacks/slice/chocolatecake name = "Chocolate Cake slice" desc = "Just a slice of cake, it is enough for everyone." icon_state = "chocolatecake_slice" @@ -2682,11 +2679,10 @@ filling_color = "#805930" bitesize = 2 center_of_mass = list("x"=16, "y"=14) + whole_path = /obj/item/weapon/reagent_containers/food/snacks/sliceable/chocolatecake -/obj/item/weapon/reagent_containers/food/snacks/chocolatecakeslice/New() - ..() - if(!(reagents.total_volume)) - reagents.add_reagent("nutriment", 4) +/obj/item/weapon/reagent_containers/food/snacks/slice/chocolatecake/filled + filled = TRUE /obj/item/weapon/reagent_containers/food/snacks/sliceable/cheesewheel name = "Cheese wheel" @@ -2696,8 +2692,8 @@ slices_num = 5 filling_color = "#FFF700" center_of_mass = list("x"=16, "y"=10) - nutriment_amt = 10 nutriment_desc = list("cheese" = 10) + nutriment_amt = 10 /obj/item/weapon/reagent_containers/food/snacks/sliceable/cheesewheel/New() ..() @@ -2716,19 +2712,19 @@ name = "Birthday Cake" desc = "Happy Birthday..." icon_state = "birthdaycake" - slice_path = /obj/item/weapon/reagent_containers/food/snacks/birthdaycakeslice + slice_path = /obj/item/weapon/reagent_containers/food/snacks/slice/birthdaycake slices_num = 5 filling_color = "#FFD6D6" center_of_mass = list("x"=16, "y"=10) - nutriment_amt = 20 nutriment_desc = list("cake" = 10, "sweetness" = 10) + nutriment_amt = 20 /obj/item/weapon/reagent_containers/food/snacks/sliceable/birthdaycake/New() ..() reagents.add_reagent("sprinkles", 10) bitesize = 3 -/obj/item/weapon/reagent_containers/food/snacks/birthdaycakeslice +/obj/item/weapon/reagent_containers/food/snacks/slice/birthdaycake name = "Birthday Cake slice" desc = "A slice of your birthday." icon_state = "birthdaycakeslice" @@ -2736,29 +2732,27 @@ filling_color = "#FFD6D6" bitesize = 2 center_of_mass = list("x"=16, "y"=14) + whole_path = /obj/item/weapon/reagent_containers/food/snacks/sliceable/birthdaycake -/obj/item/weapon/reagent_containers/food/snacks/birthdaycakeslice/New() - ..() - if(!(reagents.total_volume)) - reagents.add_reagent("nutriment", 4) - reagents.add_reagent("sprinkles", 2) +/obj/item/weapon/reagent_containers/food/snacks/slice/birthdaycake/filled + filled = TRUE /obj/item/weapon/reagent_containers/food/snacks/sliceable/bread name = "Bread" icon_state = "Some plain old Earthen bread." icon_state = "bread" - slice_path = /obj/item/weapon/reagent_containers/food/snacks/breadslice + slice_path = /obj/item/weapon/reagent_containers/food/snacks/slice/bread slices_num = 5 filling_color = "#FFE396" center_of_mass = list("x"=16, "y"=9) - nutriment_amt = 6 nutriment_desc = list("bread" = 6) + nutriment_amt = 6 /obj/item/weapon/reagent_containers/food/snacks/sliceable/bread/New() ..() bitesize = 2 -/obj/item/weapon/reagent_containers/food/snacks/breadslice +/obj/item/weapon/reagent_containers/food/snacks/slice/bread name = "Bread slice" desc = "A slice of home." icon_state = "breadslice" @@ -2766,43 +2760,42 @@ filling_color = "#D27332" bitesize = 2 center_of_mass = list("x"=16, "y"=4) + whole_path = /obj/item/weapon/reagent_containers/food/snacks/sliceable/bread -/obj/item/weapon/reagent_containers/food/snacks/breadslice/New() - ..() - if(!(reagents.total_volume)) - reagents.add_reagent("nutriment", 1) +/obj/item/weapon/reagent_containers/food/snacks/slice/bread/filled + filled = TRUE /obj/item/weapon/reagent_containers/food/snacks/sliceable/creamcheesebread name = "Cream Cheese Bread" desc = "Yum yum yum!" icon_state = "creamcheesebread" - slice_path = /obj/item/weapon/reagent_containers/food/snacks/creamcheesebreadslice + slice_path = /obj/item/weapon/reagent_containers/food/snacks/slice/creamcheesebread slices_num = 5 filling_color = "#FFF896" center_of_mass = list("x"=16, "y"=9) - nutriment_amt = 5 nutriment_desc = list("bread" = 6, "cream" = 3, "cheese" = 3) + nutriment_amt = 5 /obj/item/weapon/reagent_containers/food/snacks/sliceable/creamcheesebread/New() ..() reagents.add_reagent("protein", 15) bitesize = 2 -/obj/item/weapon/reagent_containers/food/snacks/creamcheesebreadslice +/obj/item/weapon/reagent_containers/food/snacks/slice/creamcheesebread name = "Cream Cheese Bread slice" desc = "A slice of yum!" icon_state = "creamcheesebreadslice" trash = /obj/item/trash/plate filling_color = "#FFF896" bitesize = 2 - center_of_mass = list("x"=16, "y"=13) + center_of_mass = list("x"=16, "y"=14) + whole_path = /obj/item/weapon/reagent_containers/food/snacks/sliceable/creamcheesebread + + +/obj/item/weapon/reagent_containers/food/snacks/slice/creamcheesebread/filled + filled = TRUE -/obj/item/weapon/reagent_containers/food/snacks/creamcheesebreadslice/New() - ..() - if(!(reagents.total_volume)) - reagents.add_reagent("protein", 3) - reagents.add_reagent("nutriment", 1) /obj/item/weapon/reagent_containers/food/snacks/watermelonslice name = "Watermelon Slice" @@ -2812,26 +2805,18 @@ bitesize = 2 center_of_mass = list("x"=16, "y"=10) -/obj/item/weapon/reagent_containers/food/snacks/watermelonslice/New() - ..() - if(!(reagents.total_volume)) - reagents.add_reagent("watermelonjuice", 1) - /obj/item/weapon/reagent_containers/food/snacks/sliceable/applecake name = "Apple Cake" - desc = "A cake centred with Apple" + desc = "A cake centred with apples." icon_state = "applecake" - slice_path = /obj/item/weapon/reagent_containers/food/snacks/applecakeslice + slice_path = /obj/item/weapon/reagent_containers/food/snacks/slice/applecake slices_num = 5 filling_color = "#EBF5B8" center_of_mass = list("x"=16, "y"=10) - nutriment_amt = 15 nutriment_desc = list("cake" = 10, "sweetness" = 10, "apple" = 15) + nutriment_amt = 15 -/obj/item/weapon/reagent_containers/food/snacks/sliceable/applecake/New() - ..() - -/obj/item/weapon/reagent_containers/food/snacks/applecakeslice +/obj/item/weapon/reagent_containers/food/snacks/slice/applecake name = "Apple Cake slice" desc = "A slice of heavenly cake." icon_state = "applecakeslice" @@ -2839,27 +2824,23 @@ filling_color = "#EBF5B8" bitesize = 2 center_of_mass = list("x"=16, "y"=14) + whole_path = /obj/item/weapon/reagent_containers/food/snacks/sliceable/applecake -/obj/item/weapon/reagent_containers/food/snacks/applecakeslice/New() - ..() - if(!(reagents.total_volume)) - reagents.add_reagent("nutriment", 3) +/obj/item/weapon/reagent_containers/food/snacks/slice/applecake/filled + filled = TRUE /obj/item/weapon/reagent_containers/food/snacks/sliceable/pumpkinpie name = "Pumpkin Pie" desc = "A delicious treat for the autumn months." icon_state = "pumpkinpie" - slice_path = /obj/item/weapon/reagent_containers/food/snacks/pumpkinpieslice + slice_path = /obj/item/weapon/reagent_containers/food/snacks/slice/pumpkinpie slices_num = 5 filling_color = "#F5B951" center_of_mass = list("x"=16, "y"=10) - nutriment_amt = 15 nutriment_desc = list("pie" = 5, "cream" = 5, "pumpkin" = 5) + nutriment_amt = 15 -/obj/item/weapon/reagent_containers/food/snacks/sliceable/pumpkinpie/New() - ..() - -/obj/item/weapon/reagent_containers/food/snacks/pumpkinpieslice +/obj/item/weapon/reagent_containers/food/snacks/slice/pumpkinpie name = "Pumpkin Pie slice" desc = "A slice of pumpkin pie, with whipped cream on top. Perfection." icon_state = "pumpkinpieslice" @@ -2867,23 +2848,21 @@ filling_color = "#F5B951" bitesize = 2 center_of_mass = list("x"=16, "y"=12) + whole_path = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pumpkinpie -/obj/item/weapon/reagent_containers/food/snacks/pumpkinpieslice/New() - ..() - if(!(reagents.total_volume)) - reagents.add_reagent("nutriment", 3) +/obj/item/weapon/reagent_containers/food/snacks/slice/pumpkinpie/filled + filled = TRUE /obj/item/weapon/reagent_containers/food/snacks/cracker name = "Cracker" desc = "It's a salted cracker." icon_state = "cracker" filling_color = "#F5DEB8" - center_of_mass = list("x"=17, "y"=6) - nutriment_amt = 1 + center_of_mass = list("x"=16, "y"=6) nutriment_desc = list("salt" = 1, "cracker" = 2) + nutriment_amt = 1 + -/obj/item/weapon/reagent_containers/food/snacks/cracker/New() - ..() /////////////////////////////////////////////////PIZZA//////////////////////////////////////// @@ -2895,11 +2874,11 @@ name = "Margherita" desc = "The golden standard of pizzas." icon_state = "pizzamargherita" - slice_path = /obj/item/weapon/reagent_containers/food/snacks/margheritaslice + slice_path = /obj/item/weapon/reagent_containers/food/snacks/slice/margherita slices_num = 6 center_of_mass = list("x"=16, "y"=11) - nutriment_amt = 35 nutriment_desc = list("pizza crust" = 10, "tomato" = 10, "cheese" = 15) + nutriment_amt = 35 /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/margherita/New() ..() @@ -2907,30 +2886,27 @@ reagents.add_reagent("tomatojuice", 6) bitesize = 2 -/obj/item/weapon/reagent_containers/food/snacks/margheritaslice +/obj/item/weapon/reagent_containers/food/snacks/slice/margherita name = "Margherita slice" desc = "A slice of the classic pizza." icon_state = "pizzamargheritaslice" filling_color = "#BAA14C" bitesize = 2 - center_of_mass = list("x"=18, "y"=13) + center_of_mass = list("x"=16, "y"=13) + whole_path = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/margherita -/obj/item/weapon/reagent_containers/food/snacks/margheritaslice/New() - ..() - if(!(reagents.total_volume)) - reagents.add_reagent("nutriment", 5) - reagents.add_reagent("protein", 1) - reagents.add_reagent("tomatojuice", 1) +/obj/item/weapon/reagent_containers/food/snacks/slice/margherita/filled + filled = TRUE /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/meatpizza name = "Meatpizza" desc = "A pizza with meat topping." icon_state = "meatpizza" - slice_path = /obj/item/weapon/reagent_containers/food/snacks/meatpizzaslice + slice_path = /obj/item/weapon/reagent_containers/food/snacks/slice/meatpizza slices_num = 6 center_of_mass = list("x"=16, "y"=11) - nutriment_amt = 10 nutriment_desc = list("pizza crust" = 10, "tomato" = 10, "cheese" = 15) + nutriment_amt = 10 /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/meatpizza/New() ..() @@ -2938,58 +2914,54 @@ reagents.add_reagent("tomatojuice", 6) bitesize = 2 -/obj/item/weapon/reagent_containers/food/snacks/meatpizzaslice +/obj/item/weapon/reagent_containers/food/snacks/slice/meatpizza name = "Meatpizza slice" desc = "A slice of a meaty pizza." icon_state = "meatpizzaslice" filling_color = "#BAA14C" bitesize = 2 - center_of_mass = list("x"=18, "y"=13) + center_of_mass = list("x"=16, "y"=13) + whole_path = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/meatpizza -/obj/item/weapon/reagent_containers/food/snacks/meatpizzaslice/New() - ..() - if(!(reagents.total_volume)) - reagents.add_reagent("protein", 7) - reagents.add_reagent("tomatojuice", 1) +/obj/item/weapon/reagent_containers/food/snacks/slice/meatpizza/filled + filled = TRUE /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/mushroompizza name = "Mushroompizza" - desc = "Very special pizza" + desc = "Very special pizza." icon_state = "mushroompizza" - slice_path = /obj/item/weapon/reagent_containers/food/snacks/mushroompizzaslice + slice_path = /obj/item/weapon/reagent_containers/food/snacks/slice/mushroompizza slices_num = 6 center_of_mass = list("x"=16, "y"=11) - nutriment_amt = 35 nutriment_desc = list("pizza crust" = 10, "tomato" = 10, "cheese" = 5, "mushroom" = 10) + nutriment_amt = 35 /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/mushroompizza/New() ..() reagents.add_reagent("protein", 5) bitesize = 2 -/obj/item/weapon/reagent_containers/food/snacks/mushroompizzaslice +/obj/item/weapon/reagent_containers/food/snacks/slice/mushroompizza name = "Mushroompizza slice" desc = "Maybe it is the last slice of pizza in your life." icon_state = "mushroompizzaslice" filling_color = "#BAA14C" bitesize = 2 - center_of_mass = list("x"=18, "y"=13) + center_of_mass = list("x"=16, "y"=13) + whole_path = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/mushroompizza -/obj/item/weapon/reagent_containers/food/snacks/mushroompizzaslice/New() - ..() - if(!(reagents.total_volume)) - reagents.add_reagent("nutriment", 5) - reagents.add_reagent("protein", 1) +/obj/item/weapon/reagent_containers/food/snacks/slice/mushroompizza/filled + filled = TRUE /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/vegetablepizza name = "Vegetable pizza" - desc = "No one of Tomato Sapiens were harmed during making this pizza" + desc = "No one of Tomato Sapiens were harmed during making this pizza." icon_state = "vegetablepizza" - slice_path = /obj/item/weapon/reagent_containers/food/snacks/vegetablepizzaslice + slice_path = /obj/item/weapon/reagent_containers/food/snacks/slice/vegetablepizza slices_num = 6 center_of_mass = list("x"=16, "y"=11) - nutriment_amt = 25 nutriment_desc = list("pizza crust" = 10, "tomato" = 10, "cheese" = 5, "eggplant" = 5, "carrot" = 5, "corn" = 5) + nutriment_amt = 25 /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/vegetablepizza/New() ..() @@ -2998,21 +2970,17 @@ reagents.add_reagent("imidazoline", 12) bitesize = 2 -/obj/item/weapon/reagent_containers/food/snacks/vegetablepizzaslice +/obj/item/weapon/reagent_containers/food/snacks/slice/vegetablepizza name = "Vegetable pizza slice" - desc = "A slice of the most green pizza of all pizzas not containing green ingredients " + desc = "A slice of the most green pizza of all pizzas not containing green ingredients." icon_state = "vegetablepizzaslice" filling_color = "#BAA14C" bitesize = 2 - center_of_mass = list("x"=18, "y"=13) + center_of_mass = list("x"=16, "y"=13) + whole_path = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/vegetablepizza -/obj/item/weapon/reagent_containers/food/snacks/vegetablepizzaslice/New() - ..() - if(!(reagents.total_volume)) - reagents.add_reagent("nutriment", 4) - reagents.add_reagent("protein", 1) - reagents.add_reagent("tomatojuice", 1) - reagents.add_reagent("imidazoline", 2) +/obj/item/weapon/reagent_containers/food/snacks/slice/vegetablepizza/filled + filled = TRUE /obj/item/pizzabox name = "pizza box" @@ -3026,46 +2994,34 @@ var/list/boxes = list() // If the boxes are stacked, they come here var/boxtag = "" -/obj/item/pizzabox/proc/closepizzabox() - - if(boxes.len > 0) - return - - open = !open - - if(open && pizza) - ismessy = 1 - - update_icon() - /obj/item/pizzabox/update_icon() overlays = list() // Set appropriate description - if(open && pizza) + if( open && pizza ) desc = "A box suited for pizzas. It appears to have a [pizza.name] inside." - else if(boxes.len > 0) + else if( boxes.len > 0 ) desc = "A pile of boxes suited for pizzas. There appears to be [boxes.len + 1] boxes in the pile." var/obj/item/pizzabox/topbox = boxes[boxes.len] var/toptag = topbox.boxtag - if(toptag != "") + if( toptag != "" ) desc = "[desc] The box on top has a tag, it reads: '[toptag]'." else desc = "A box suited for pizzas." - if(boxtag != "") + if( boxtag != "" ) desc = "[desc] The box has a tag, it reads: '[boxtag]'." // Icon states and overlays - if(open) - if(ismessy) + if( open ) + if( ismessy ) icon_state = "pizzabox_messy" else icon_state = "pizzabox_open" - if(pizza) + if( pizza ) var/image/pizzaimg = image("food.dmi", icon_state = pizza.icon_state) pizzaimg.pixel_y = -3 overlays += pizzaimg @@ -3074,33 +3030,33 @@ else // Stupid code because byondcode sucks var/doimgtag = 0 - if(boxes.len > 0) + if( boxes.len > 0 ) var/obj/item/pizzabox/topbox = boxes[boxes.len] - if(topbox.boxtag != "") + if( topbox.boxtag != "" ) doimgtag = 1 else - if(boxtag != "") + if( boxtag != "" ) doimgtag = 1 - if(doimgtag) + if( doimgtag ) var/image/tagimg = image("food.dmi", icon_state = "pizzabox_tag") tagimg.pixel_y = boxes.len * 3 overlays += tagimg icon_state = "pizzabox[boxes.len+1]" -/obj/item/pizzabox/attack_hand(mob/user as mob) +/obj/item/pizzabox/attack_hand( mob/user as mob ) if( open && pizza ) - user.put_in_hands(pizza) + user.put_in_hands( pizza ) - user << "You take \the [src.pizza] out of the [src]." + to_chat(user, "You take \the [src.pizza] out of \the [src].") src.pizza = null update_icon() return - if(boxes.len > 0) - if(user.get_inactive_hand() != src) + if( boxes.len > 0 ) + if( user.get_inactive_hand() != src ) ..() return @@ -3108,74 +3064,76 @@ boxes -= box user.put_in_hands( box ) - user << "You remove \the topmost [src] from your hand." + to_chat(user, "You remove the topmost [src] from your hand.") box.update_icon() update_icon() return ..() -/obj/item/pizzabox/attack_self(mob/user as mob) +/obj/item/pizzabox/attack_self( mob/user as mob ) - closepizzabox() + if( boxes.len > 0 ) + return -/obj/item/pizzabox/AltClick() + open = !open - if(Adjacent(usr)) - closepizzabox() + if( open && pizza ) + ismessy = 1 + + update_icon() /obj/item/pizzabox/attackby( obj/item/I as obj, mob/user as mob ) - if(istype(I, /obj/item/pizzabox/)) + if( istype(I, /obj/item/pizzabox/) ) var/obj/item/pizzabox/box = I - if(!box.open && !src.open) + if( !box.open && !src.open ) // Make a list of all boxes to be added var/list/boxestoadd = list() boxestoadd += box for(var/obj/item/pizzabox/i in box.boxes) boxestoadd += i - if((boxes.len+1) + boxestoadd.len <= 5) + if( (boxes.len+1) + boxestoadd.len <= 5 ) user.drop_item() box.loc = src box.boxes = list() // Clear the box boxes so we don't have boxes inside boxes. - Xzibit - src.boxes.Add(boxestoadd) + src.boxes.Add( boxestoadd ) box.update_icon() update_icon() - user << "You put \the [box] ontop of the [src]!" + to_chat(user, "You put \the [box] ontop of \the [src]!") else - user << "\The stack is too high!" + to_chat(user, "The stack is too high!") else - user << "Close \the [box] first!" + to_chat(user, "Close \the [box] first!") return - if(istype(I, /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/)) // Long ass fucking object name + if( istype(I, /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/) ) // Long ass fucking object name - if(open) - if(!pizza) - user.drop_item() - I.loc = src - pizza = I - update_icon() - user << "You put \the [I] in \the [src]!" - else - user << "\The [src] is full! It already has a [pizza] inside." + if( src.open ) + user.drop_item() + I.loc = src + src.pizza = I + + update_icon() + + to_chat(user, "You put \the [I] in \the [src]!") else - user << "You try to push \the [I] through the lid but it doesn't work!" - + to_chat(user, "You try to push \the [I] through the lid but it doesn't work!") return - if(istype(I, /obj/item/weapon/pen/)) - if(open) + if( istype(I, /obj/item/weapon/pen/) ) + + if( src.open ) return var/t = sanitize(input("Enter what you want to add to the tag:", "Write", null, null) as text, 30) var/obj/item/pizzabox/boxtotagto = src - if(boxes.len > 0) + if( boxes.len > 0 ) boxtotagto = boxes[boxes.len] boxtotagto.boxtag = copytext("[boxtotagto.boxtag][t]", 1, 30) diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index 724191cee7..63bb549645 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -76,7 +76,6 @@ switch(mode) if(SYRINGE_DRAW) - if(!reagents.get_free_space()) user << "The syringe is full." mode = SYRINGE_INJECT @@ -137,7 +136,7 @@ user << "[target] is empty." return - if(!target.is_open_container() && !istype(target, /obj/structure/reagent_dispensers) && !istype(target, /obj/item/slime_extract)) + if(!target.is_open_container() && !istype(target, /obj/structure/reagent_dispensers) && !istype(target, /obj/item/slime_extract) && !istype(target, /obj/item/weapon/reagent_containers/food)) user << "You cannot directly remove reagents from this object." return @@ -209,7 +208,7 @@ trans = reagents.trans_to_mob(target, amount_per_transfer_from_this, CHEM_BLOOD) admin_inject_log(user, target, src, contained, trans) else - trans = reagents.trans_to(target, amount_per_transfer_from_this) + trans = reagents.trans_to_obj(target, amount_per_transfer_from_this) if(trans) user << "You inject [trans] units of the solution. The syringe now contains [src.reagents.total_volume] units." else diff --git a/code/modules/tables/presets.dm b/code/modules/tables/presets.dm index 933f54ea8b..171bfe2b2c 100644 --- a/code/modules/tables/presets.dm +++ b/code/modules/tables/presets.dm @@ -28,7 +28,7 @@ material = get_material_by_name(DEFAULT_TABLE_MATERIAL) reinforced = get_material_by_name(DEFAULT_WALL_MATERIAL) ..() - + steel_reinforced icon_state = "reinf_preview" color = "#666666" @@ -37,6 +37,14 @@ reinforced = get_material_by_name(DEFAULT_WALL_MATERIAL) ..() + wooden_reinforced + icon_state = "reinf_preview" + color = "#824B28" + New() + material = get_material_by_name("wood") + reinforced = get_material_by_name(DEFAULT_WALL_MATERIAL) + ..() + woodentable icon_state = "plain_preview" color = "#824B28" diff --git a/icons/effects/tile_effects.dmi b/icons/effects/tile_effects.dmi index b08f1ac3de..8529bdc816 100644 Binary files a/icons/effects/tile_effects.dmi and b/icons/effects/tile_effects.dmi differ diff --git a/icons/obj/assemblies.dmi b/icons/obj/assemblies.dmi index 370fb582e7..89ab898f56 100644 Binary files a/icons/obj/assemblies.dmi and b/icons/obj/assemblies.dmi differ diff --git a/icons/obj/atmos.dmi b/icons/obj/atmos.dmi index a80de32c0c..d3b7507edc 100644 Binary files a/icons/obj/atmos.dmi and b/icons/obj/atmos.dmi differ diff --git a/icons/obj/decals.dmi b/icons/obj/decals.dmi index 6c8ddd9d39..af40b1c6ff 100644 Binary files a/icons/obj/decals.dmi and b/icons/obj/decals.dmi differ diff --git a/icons/obj/tank.dmi b/icons/obj/tank.dmi index c1b956645b..6c4d65b76e 100644 Binary files a/icons/obj/tank.dmi and b/icons/obj/tank.dmi differ diff --git a/icons/turf/flooring/decals.dmi b/icons/turf/flooring/decals.dmi index c5b2a54b0b..c3441b5714 100644 Binary files a/icons/turf/flooring/decals.dmi and b/icons/turf/flooring/decals.dmi differ diff --git a/maps/northern_star/polaris-2.dmm b/maps/northern_star/polaris-2.dmm index 06ca008289..0187d78972 100644 --- a/maps/northern_star/polaris-2.dmm +++ b/maps/northern_star/polaris-2.dmm @@ -1931,7 +1931,7 @@ "aLg" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/amanita_pie,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar) "aLh" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/bigbiteburger,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar) "aLi" = (/obj/structure/bed/chair/wood/wings{icon_state = "wooden_chair_wings"; dir = 8},/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar) -"aLj" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/carrotcakeslice,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar) +"aLj" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/slice/carrotcake/filled,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar) "aLk" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/stew,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar) "aLl" = (/obj/item/weapon/stool/padded,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bathroom) "aLm" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom) @@ -1975,7 +1975,7 @@ "aLY" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/bloodsoup,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar) "aLZ" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/tofukabob,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar) "aMa" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/poppypretzel,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar) -"aMb" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/orangecakeslice,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar) +"aMb" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/slice/orangecake/filled,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar) "aMc" = (/obj/machinery/atm{pixel_x = -30},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/main_hall) "aMd" = (/obj/machinery/atm{pixel_x = 30},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/main_hall) "aMe" = (/obj/structure/bed/chair{dir = 4},/obj/machinery/light/small{dir = 1},/turf/simulated/shuttle/floor4,/area/shuttle/escape/centcom)