mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-22 12:41:09 +01:00
fixups
This commit is contained in:
@@ -24,37 +24,39 @@
|
||||
/obj/structure/bed/nest/wrench_act_secondary(mob/living/user, obj/item/weapon)
|
||||
return ITEM_INTERACT_BLOCKING
|
||||
|
||||
/obj/structure/bed/nest/user_unbuckle_mob(mob/living/buckled_mob, mob/living/user)
|
||||
if(has_buckled_mobs())
|
||||
for(var/buck in buckled_mobs) //breaking a nest releases all the buckled mobs, because the nest isn't holding them down anymore
|
||||
var/mob/living/M = buck
|
||||
|
||||
if(user.get_organ_by_type(/obj/item/organ/internal/alien/plasmavessel))
|
||||
unbuckle_mob(M)
|
||||
add_fingerprint(user)
|
||||
return
|
||||
/obj/structure/bed/nest/user_unbuckle_mob(mob/living/captive, mob/living/hero)
|
||||
if(!length(buckled_mobs))
|
||||
return
|
||||
|
||||
if(M != user)
|
||||
M.visible_message(span_notice("[user.name] pulls [M.name] free from the sticky nest!"),\
|
||||
span_notice("[user.name] pulls you free from the gelatinous resin."),\
|
||||
span_hear("You hear squelching..."))
|
||||
else
|
||||
M.visible_message(span_warning("[M.name] struggles to break free from the gelatinous resin!"),\
|
||||
span_notice("You struggle to break free from the gelatinous resin... (Stay still for about a minute and a half.)"),\
|
||||
span_hear("You hear squelching..."))
|
||||
if(!do_after(M, 100 SECONDS, target = src))
|
||||
if(M?.buckled)
|
||||
to_chat(M, span_warning("You fail to unbuckle yourself!"))
|
||||
return
|
||||
if(!M.buckled)
|
||||
return
|
||||
M.visible_message(span_warning("[M.name] breaks free from the gelatinous resin!"),\
|
||||
span_notice("You break free from the gelatinous resin!"),\
|
||||
span_hear("You hear squelching..."))
|
||||
if(hero.get_organ_by_type(/obj/item/organ/internal/alien/plasmavessel))
|
||||
unbuckle_mob(captive)
|
||||
add_fingerprint(hero)
|
||||
return
|
||||
|
||||
if(captive != hero)
|
||||
captive.visible_message(span_notice("[hero.name] pulls [captive.name] free from the sticky nest!"),
|
||||
span_notice("[hero.name] pulls you free from the gelatinous resin."),
|
||||
span_hear("You hear squelching..."))
|
||||
unbuckle_mob(captive)
|
||||
add_fingerprint(hero)
|
||||
return
|
||||
|
||||
captive.visible_message(span_warning("[captive.name] struggles to break free from the gelatinous resin!"),
|
||||
span_notice("You struggle to break free from the gelatinous resin... (Stay still for about a minute and a half.)"),
|
||||
span_hear("You hear squelching..."))
|
||||
|
||||
unbuckle_mob(M)
|
||||
add_fingerprint(user)
|
||||
if(!do_after(captive, 100 SECONDS, target = src, hidden = TRUE))
|
||||
if(captive.buckled)
|
||||
to_chat(captive, span_warning("You fail to unbuckle yourself!"))
|
||||
return
|
||||
|
||||
captive.visible_message(span_warning("[captive.name] breaks free from the gelatinous resin!"),
|
||||
span_notice("You break free from the gelatinous resin!"),
|
||||
span_hear("You hear squelching..."))
|
||||
|
||||
unbuckle_mob(captive)
|
||||
add_fingerprint(hero)
|
||||
|
||||
/obj/structure/bed/nest/user_buckle_mob(mob/living/M, mob/user, check_loc = TRUE)
|
||||
if ( !ismob(M) || (get_dist(src, user) > 1) || (M.loc != src.loc) || user.incapacitated() || M.buckled )
|
||||
|
||||
@@ -110,17 +110,14 @@
|
||||
if(!isnull(foldable_type))
|
||||
. += span_notice("You can fold it up with a Right-click.")
|
||||
|
||||
/obj/structure/bed/medical/AltClick(mob/user)
|
||||
. = ..()
|
||||
if(!can_interact(user))
|
||||
return
|
||||
|
||||
/obj/structure/bed/medical/click_alt(mob/user)
|
||||
if(has_buckled_mobs() && (user in buckled_mobs))
|
||||
return
|
||||
return CLICK_ACTION_BLOCKING
|
||||
|
||||
anchored = !anchored
|
||||
balloon_alert(user, "brakes [anchored ? "applied" : "released"]")
|
||||
update_appearance()
|
||||
return CLICK_ACTION_SUCCESS
|
||||
|
||||
/obj/structure/bed/medical/post_buckle_mob(mob/living/buckled)
|
||||
. = ..()
|
||||
|
||||
@@ -57,8 +57,6 @@
|
||||
return
|
||||
. = ..()
|
||||
|
||||
/obj/structure/chair/AltClick(mob/user)
|
||||
return ..() // This hotkey is BLACKLISTED since it's used by /datum/component/simple_rotation
|
||||
|
||||
///allows each chair to request the electrified_buckle component with overlays that dont look ridiculous
|
||||
/obj/structure/chair/proc/electrify_self(obj/item/assembly/shock_kit/input_shock_kit, mob/user, list/overlays_from_child_procs)
|
||||
@@ -447,6 +445,8 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/chair/stool/bar, 0)
|
||||
buildstacktype = /obj/item/stack/sheet/bronze
|
||||
buildstackamount = 1
|
||||
item_chair = null
|
||||
interaction_flags_click = NEED_DEXTERITY
|
||||
/// Total rotations made
|
||||
var/turns = 0
|
||||
|
||||
/obj/structure/chair/bronze/Initialize(mapload)
|
||||
@@ -464,10 +464,8 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/chair/stool/bar, 0)
|
||||
if(turns >= 8)
|
||||
STOP_PROCESSING(SSfastprocess, src)
|
||||
|
||||
/obj/structure/chair/bronze/AltClick(mob/user)
|
||||
/obj/structure/chair/bronze/click_alt(mob/user)
|
||||
turns = 0
|
||||
if(!user.can_perform_action(src, NEED_DEXTERITY))
|
||||
return
|
||||
if(!(datum_flags & DF_ISPROCESSING))
|
||||
user.visible_message(span_notice("[user] spins [src] around, and the last vestiges of Ratvarian technology keeps it spinning FOREVER."), \
|
||||
span_notice("Automated spinny chairs. The pinnacle of ancient Ratvarian technology."))
|
||||
@@ -476,6 +474,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/chair/stool/bar, 0)
|
||||
user.visible_message(span_notice("[user] stops [src]'s uncontrollable spinning."), \
|
||||
span_notice("You grab [src] and stop its wild spinning."))
|
||||
STOP_PROCESSING(SSfastprocess, src)
|
||||
return CLICK_ACTION_SUCCESS
|
||||
|
||||
/obj/structure/chair/mime
|
||||
name = "invisible chair"
|
||||
@@ -484,11 +483,11 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/chair/stool/bar, 0)
|
||||
icon_state = null
|
||||
buildstacktype = null
|
||||
item_chair = null
|
||||
obj_flags = parent_type::obj_flags | NO_DECONSTRUCTION
|
||||
obj_flags = parent_type::obj_flags | NO_DEBRIS_AFTER_DECONSTRUCTION
|
||||
alpha = 0
|
||||
|
||||
/obj/structure/chair/mime/wrench_act_secondary(mob/living/user, obj/item/weapon)
|
||||
return ITEM_INTERACT_BLOCKING
|
||||
return NONE
|
||||
|
||||
/obj/structure/chair/mime/post_buckle_mob(mob/living/M)
|
||||
M.pixel_y += 5
|
||||
|
||||
@@ -20,6 +20,7 @@ LINEN BINS
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
resistance_flags = FLAMMABLE
|
||||
dying_key = DYE_REGISTRY_BEDSHEET
|
||||
interaction_flags_click = NEED_DEXTERITY
|
||||
|
||||
dog_fashion = /datum/dog_fashion/head/ghost
|
||||
/// Custom nouns to act as the subject of dreams
|
||||
@@ -133,11 +134,9 @@ LINEN BINS
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/item/bedsheet/AltClick(mob/living/user)
|
||||
// double check the canUseTopic args to make sure it's correct
|
||||
if(!istype(user) || !user.can_perform_action(src, NEED_DEXTERITY))
|
||||
return
|
||||
/obj/item/bedsheet/click_alt(mob/living/user)
|
||||
dir = REVERSE_DIR(dir)
|
||||
return CLICK_ACTION_SUCCESS
|
||||
|
||||
/obj/item/bedsheet/blue
|
||||
icon_state = "sheetblue"
|
||||
|
||||
@@ -191,7 +191,6 @@
|
||||
|
||||
// Late init so that we can wait for air to exist in lazyloaded templates
|
||||
/obj/structure/bonfire/prelit/LateInitialize()
|
||||
. = ..()
|
||||
start_burning()
|
||||
|
||||
#undef BONFIRE_FIRE_STACK_STRENGTH
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
return INITIALIZE_HINT_LATELOAD
|
||||
|
||||
/obj/structure/broken_flooring/LateInitialize()
|
||||
. = ..()
|
||||
var/turf/turf = get_turf(src)
|
||||
if(!isplatingturf(turf) && !always_floorplane) // Render as trash if not on plating
|
||||
plane = GAME_PLANE
|
||||
|
||||
@@ -163,7 +163,6 @@ GLOBAL_LIST_EMPTY(roundstart_station_closets)
|
||||
update_appearance()
|
||||
|
||||
/obj/structure/closet/LateInitialize()
|
||||
. = ..()
|
||||
if(!opened && is_maploaded)
|
||||
take_contents()
|
||||
|
||||
@@ -581,7 +580,11 @@ GLOBAL_LIST_EMPTY(roundstart_station_closets)
|
||||
else
|
||||
return open(user)
|
||||
|
||||
/obj/structure/closet/atom_deconstruct(disassembled = TRUE)
|
||||
/obj/structure/closet/handle_deconstruct(disassembled)
|
||||
dump_contents()
|
||||
if(obj_flags & NO_DEBRIS_AFTER_DECONSTRUCTION)
|
||||
return
|
||||
|
||||
if(ispath(material_drop) && material_drop_amount)
|
||||
new material_drop(loc, material_drop_amount)
|
||||
if (secure)
|
||||
@@ -593,7 +596,6 @@ GLOBAL_LIST_EMPTY(roundstart_station_closets)
|
||||
electronics.accesses = req_access
|
||||
if(card_reader_installed)
|
||||
new /obj/item/stock_parts/card_reader(drop_location())
|
||||
dump_contents()
|
||||
|
||||
/obj/structure/closet/atom_break(damage_flag)
|
||||
. = ..()
|
||||
|
||||
@@ -171,7 +171,7 @@
|
||||
if(A_is_item.w_class < max_weight_of_contents)
|
||||
continue
|
||||
max_weight_of_contents = A_is_item.w_class
|
||||
folding_bodybag.w_class = max_weight_of_contents
|
||||
folding_bodybag.update_weight_class(max_weight_of_contents)
|
||||
the_folder.put_in_hands(folding_bodybag)
|
||||
|
||||
/// Environmental bags. They protect against bad weather.
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
. = ..()
|
||||
|
||||
// Traitor steal objective
|
||||
new /obj/item/areaeditor/blueprints(src)
|
||||
new /obj/item/blueprints(src)
|
||||
new /obj/item/pipe_dispenser/bluespace(src) // SKYRAT EDIT -- BLUESPACE RPD -- ORIGINAL: new /obj/item/pipe_dispenser(src)
|
||||
|
||||
/obj/structure/closet/secure_closet/engineering_electrical
|
||||
|
||||
@@ -46,20 +46,20 @@
|
||||
var/static/list/crate_paint_jobs
|
||||
if(isnull(crate_paint_jobs))
|
||||
crate_paint_jobs = list(
|
||||
"Internals" = list("icon_state" = "o2crate"),
|
||||
"Medical" = list("icon_state" = "medical"),
|
||||
"Medical Plus" = list("icon_state" = "medicalcrate"),
|
||||
"Radiation" = list("icon_state" = "radiation"),
|
||||
"Hydrophonics" = list("icon_state" = "hydrocrate"),
|
||||
"Science" = list("icon_state" = "scicrate"),
|
||||
"Robotics" = list("icon_state" = "robo"),
|
||||
"Solar" = list("icon_state" = "engi_e_crate"),
|
||||
"Engineering" = list("icon_state" = "engi_crate"),
|
||||
"Atmospherics" = list("icon_state" = "atmos"),
|
||||
"Cargo" = list("icon_state" = "cargo"),
|
||||
"Mining" = list("icon_state" = "mining"),
|
||||
"Command" = list("icon_state" = "centcom")
|
||||
)
|
||||
"Internals" = list("icon_state" = "o2crate"),
|
||||
"Medical" = list("icon_state" = "medical"),
|
||||
"Medical Plus" = list("icon_state" = "medicalcrate"),
|
||||
"Radiation" = list("icon_state" = "radiation"),
|
||||
"Hydrophonics" = list("icon_state" = "hydrocrate"),
|
||||
"Science" = list("icon_state" = "scicrate"),
|
||||
"Robotics" = list("icon_state" = "robo"),
|
||||
"Solar" = list("icon_state" = "engi_e_crate"),
|
||||
"Engineering" = list("icon_state" = "engi_crate"),
|
||||
"Atmospherics" = list("icon_state" = "atmos"),
|
||||
"Cargo" = list("icon_state" = "cargo"),
|
||||
"Mining" = list("icon_state" = "mining"),
|
||||
"Command" = list("icon_state" = "centcom"),
|
||||
)
|
||||
if(paint_jobs)
|
||||
paint_jobs = crate_paint_jobs
|
||||
|
||||
|
||||
@@ -451,8 +451,8 @@
|
||||
ui.open()
|
||||
|
||||
/obj/item/key/displaycase
|
||||
name = "display case key"
|
||||
desc = "The key to the curator's display cases."
|
||||
name = "curator key"
|
||||
desc = "The key to the curator's display cases and arcade cabinets."
|
||||
|
||||
/obj/item/showpiece_dummy
|
||||
name = "holographic replica"
|
||||
|
||||
@@ -7,19 +7,17 @@
|
||||
density = FALSE
|
||||
can_buckle = 1
|
||||
|
||||
/obj/structure/sacrificealtar/AltClick(mob/living/user)
|
||||
..()
|
||||
if(!istype(user) || !user.can_perform_action(src))
|
||||
return
|
||||
/obj/structure/sacrificealtar/click_alt(mob/living/user)
|
||||
if(!has_buckled_mobs())
|
||||
return
|
||||
return CLICK_ACTION_BLOCKING
|
||||
var/mob/living/L = locate() in buckled_mobs
|
||||
if(!L)
|
||||
return
|
||||
return CLICK_ACTION_BLOCKING
|
||||
to_chat(user, span_notice("Invoking the sacred ritual, you sacrifice [L]."))
|
||||
L.investigate_log("has been sacrificially gibbed on an altar.", INVESTIGATE_DEATHS)
|
||||
L.gib(DROP_ALL_REMAINS)
|
||||
message_admins("[ADMIN_LOOKUPFLW(user)] has sacrificed [key_name_admin(L)] on the sacrificial altar at [AREACOORD(src)].")
|
||||
return CLICK_ACTION_SUCCESS
|
||||
|
||||
/obj/structure/healingfountain
|
||||
name = "healing fountain"
|
||||
|
||||
@@ -91,9 +91,9 @@
|
||||
qdel(src)
|
||||
return T
|
||||
|
||||
/obj/structure/falsewall/item_interaction(mob/living/user, obj/item/tool, list/modifiers, is_right_clicking)
|
||||
/obj/structure/falsewall/item_interaction(mob/living/user, obj/item/tool, list/modifiers)
|
||||
if(!opening || !tool.tool_behaviour)
|
||||
return ..()
|
||||
return NONE
|
||||
to_chat(user, span_warning("You must wait until the door has stopped moving!"))
|
||||
return ITEM_INTERACT_BLOCKING
|
||||
|
||||
|
||||
@@ -453,7 +453,6 @@
|
||||
icon_state = "pinepresents"
|
||||
desc = "A wondrous decorated Christmas tree. It has presents!"
|
||||
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF //protected by the christmas spirit
|
||||
obj_flags = parent_type::obj_flags | NO_DECONSTRUCTION
|
||||
var/gift_type = /obj/item/gift/anything
|
||||
var/unlimited = FALSE
|
||||
var/static/list/took_presents //shared between all xmas trees
|
||||
|
||||
@@ -143,7 +143,7 @@
|
||||
span_notice("You struggle to break free from [src], exacerbating your wounds! (Stay still for two minutes.)"),\
|
||||
span_hear("You hear a wet squishing noise.."))
|
||||
buckled_mob.adjustBruteLoss(30)
|
||||
if(!do_after(buckled_mob, 2 MINUTES, target = src))
|
||||
if(!do_after(buckled_mob, 2 MINUTES, target = src, hidden = TRUE))
|
||||
if(buckled_mob?.buckled)
|
||||
to_chat(buckled_mob, span_warning("You fail to free yourself!"))
|
||||
return
|
||||
|
||||
@@ -167,14 +167,12 @@
|
||||
|
||||
playsound(src, 'sound/machines/click.ogg', 10, TRUE)
|
||||
|
||||
/obj/item/plunger/AltClick(mob/user)
|
||||
if(!istype(user) || !user.can_perform_action(src))
|
||||
return
|
||||
|
||||
/obj/item/plunger/click_alt(mob/user)
|
||||
var/new_layer = tgui_input_list(user, "Select a layer", "Layer", GLOB.plumbing_layers)
|
||||
if(isnull(new_layer))
|
||||
return
|
||||
if(isnull(new_layer) || !user.can_perform_action(src))
|
||||
return CLICK_ACTION_BLOCKING
|
||||
target_layer = GLOB.plumbing_layers[new_layer]
|
||||
return CLICK_ACTION_SUCCESS
|
||||
|
||||
///A faster reinforced plunger
|
||||
/obj/item/plunger/reinforced
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
/**
|
||||
* A boulder-spawning structure superficially similar to an ore vent which doesnt share any of its behaviour
|
||||
* Prisoners can haul boulders up out of it in case the actual mining area is totally spent
|
||||
*/
|
||||
/obj/structure/gulag_vent
|
||||
name = "work pit"
|
||||
desc = "A timeworn shaft, almost totally mined out. With a bit of effort you might be able to haul something up."
|
||||
icon = 'icons/obj/mining_zones/terrain.dmi'
|
||||
icon_state = "ore_vent_active"
|
||||
move_resist = MOVE_FORCE_EXTREMELY_STRONG
|
||||
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF //This thing will take a beating.
|
||||
interaction_flags_atom = INTERACT_ATOM_ATTACK_HAND | INTERACT_ATOM_REQUIRES_DEXTERITY
|
||||
anchored = TRUE
|
||||
density = TRUE
|
||||
/// What kind of rock we got in there?
|
||||
var/spawned_boulder = /obj/item/boulder/gulag
|
||||
/// Prevents multiple people from hauling at a time
|
||||
var/occupied = FALSE
|
||||
|
||||
/obj/structure/gulag_vent/ice
|
||||
icon_state = "ore_vent_ice_active"
|
||||
|
||||
/obj/structure/gulag_vent/interact(mob/user)
|
||||
. = ..()
|
||||
if (!isliving(user))
|
||||
return
|
||||
if (occupied)
|
||||
balloon_alert(user, "occupied!")
|
||||
return
|
||||
var/mob/living/living_user = user
|
||||
occupied = TRUE
|
||||
living_user.balloon_alert_to_viewers("hauling...")
|
||||
var/succeeded = do_after(living_user, 8 SECONDS, src)
|
||||
occupied = FALSE
|
||||
if (!succeeded)
|
||||
return
|
||||
living_user.mind?.adjust_experience(/datum/skill/fitness, 10)
|
||||
living_user.apply_status_effect(/datum/status_effect/exercised)
|
||||
new spawned_boulder(get_turf(living_user))
|
||||
living_user.visible_message(span_notice("[living_user] hauls a boulder out of [src]."))
|
||||
living_user.apply_damage(120, STAMINA)
|
||||
playsound(src, 'sound/weapons/genhit.ogg', vol = 50, vary = TRUE)
|
||||
@@ -170,6 +170,7 @@ GLOBAL_LIST_EMPTY(bodycontainers) //Let them act as spawnpoints for revenants an
|
||||
icon_state = "morgue1"
|
||||
base_icon_state = "morgue"
|
||||
dir = EAST
|
||||
interaction_flags_click = ALLOW_SILICON_REACH|ALLOW_RESTING
|
||||
|
||||
connected = /obj/structure/tray/m_tray
|
||||
|
||||
@@ -190,13 +191,11 @@ GLOBAL_LIST_EMPTY(bodycontainers) //Let them act as spawnpoints for revenants an
|
||||
/// Minimum temperature of the internal air mixture
|
||||
var/minimum_temperature = T0C - 60
|
||||
|
||||
|
||||
/obj/structure/bodycontainer/morgue/Initialize(mapload)
|
||||
..()
|
||||
return INITIALIZE_HINT_LATELOAD
|
||||
|
||||
/obj/structure/bodycontainer/morgue/LateInitialize()
|
||||
. = ..()
|
||||
var/datum/gas_mixture/external_air = loc.return_air()
|
||||
if(external_air)
|
||||
internal_air = external_air.copy()
|
||||
@@ -301,12 +300,10 @@ GLOBAL_LIST_EMPTY(bodycontainers) //Let them act as spawnpoints for revenants an
|
||||
. = ..()
|
||||
. += span_notice("The speaker is [beeper ? "enabled" : "disabled"]. Alt-click to toggle it.")
|
||||
|
||||
/obj/structure/bodycontainer/morgue/AltClick(mob/user)
|
||||
..()
|
||||
if(!user.can_perform_action(src, (ALLOW_SILICON_REACH|ALLOW_RESTING)))
|
||||
return
|
||||
/obj/structure/bodycontainer/morgue/click_alt(mob/user)
|
||||
beeper = !beeper
|
||||
to_chat(user, span_notice("You turn the speaker function [beeper ? "on" : "off"]."))
|
||||
return CLICK_ACTION_SUCCESS
|
||||
|
||||
/obj/structure/bodycontainer/morgue/emag_act(mob/user, obj/item/card/emag/emag_card)
|
||||
if(obj_flags & EMAGGED)
|
||||
|
||||
@@ -35,8 +35,7 @@
|
||||
. = ..()
|
||||
return INITIALIZE_HINT_LATELOAD
|
||||
|
||||
/obj/structure/plaque/static_plaque/tram/LateInitialize(mapload)
|
||||
. = ..()
|
||||
/obj/structure/plaque/static_plaque/tram/LateInitialize()
|
||||
link_tram()
|
||||
set_tram_serial()
|
||||
|
||||
|
||||
@@ -88,8 +88,6 @@
|
||||
to_chat(user, span_warning("[src] is already in good condition!"))
|
||||
return
|
||||
|
||||
/obj/structure/railing/AltClick(mob/user)
|
||||
return ..() // This hotkey is BLACKLISTED since it's used by /datum/component/simple_rotation
|
||||
|
||||
/obj/structure/railing/wirecutter_act(mob/living/user, obj/item/I)
|
||||
. = ..()
|
||||
|
||||
@@ -79,10 +79,10 @@
|
||||
P.decayedRange = max(P.decayedRange--, 0)
|
||||
return BULLET_ACT_FORCE_PIERCE
|
||||
|
||||
/obj/structure/reflector/item_interaction(mob/living/user, obj/item/tool, list/modifiers, is_right_clicking)
|
||||
/obj/structure/reflector/item_interaction(mob/living/user, obj/item/tool, list/modifiers)
|
||||
if(admin && tool.tool_behaviour)
|
||||
return ITEM_INTERACT_BLOCKING
|
||||
return ..()
|
||||
return NONE
|
||||
|
||||
/obj/structure/reflector/screwdriver_act(mob/living/user, obj/item/tool)
|
||||
can_rotate = !can_rotate
|
||||
|
||||
@@ -373,8 +373,6 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/shower, (-16))
|
||||
deconstruct()
|
||||
return TRUE
|
||||
|
||||
/obj/structure/showerframe/AltClick(mob/user)
|
||||
return ..() // This hotkey is BLACKLISTED since it's used by /datum/component/simple_rotation
|
||||
|
||||
/obj/effect/mist
|
||||
name = "mist"
|
||||
|
||||
@@ -220,6 +220,7 @@
|
||||
to_chat(user, span_notice("You start deconstructing [src]..."))
|
||||
if(tool.use_tool(src, user, 4 SECONDS, volume=50))
|
||||
playsound(loc, 'sound/items/deconstruct.ogg', 50, TRUE)
|
||||
frame = null
|
||||
deconstruct(TRUE)
|
||||
return ITEM_INTERACT_SUCCESS
|
||||
|
||||
@@ -304,7 +305,11 @@
|
||||
else
|
||||
for(var/datum/material/mat in custom_materials)
|
||||
new mat.sheet_type(target_turf, FLOOR(custom_materials[mat] / SHEET_MATERIAL_AMOUNT, 1))
|
||||
new framestack(target_turf, framestackamount)
|
||||
|
||||
if(frame)
|
||||
new frame(target_turf)
|
||||
else
|
||||
new framestack(get_turf(src), framestackamount)
|
||||
|
||||
/obj/structure/table/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd)
|
||||
if(the_rcd.mode == RCD_DECONSTRUCT)
|
||||
@@ -857,12 +862,12 @@
|
||||
deconstruct(TRUE)
|
||||
return ITEM_INTERACT_SUCCESS
|
||||
|
||||
/obj/structure/rack/item_interaction(mob/living/user, obj/item/tool, list/modifiers, is_right_clicking)
|
||||
. = ..()
|
||||
if(. || (tool.item_flags & ABSTRACT) || user.combat_mode)
|
||||
return .
|
||||
/obj/structure/rack/item_interaction(mob/living/user, obj/item/tool, list/modifiers)
|
||||
if((tool.item_flags & ABSTRACT) || user.combat_mode)
|
||||
return NONE
|
||||
if(user.transferItemToLoc(tool, drop_location(), silent = FALSE))
|
||||
return ITEM_INTERACT_SUCCESS
|
||||
return ITEM_INTERACT_BLOCKING
|
||||
|
||||
/obj/structure/rack/attack_paw(mob/living/user, list/modifiers)
|
||||
attack_hand(user, modifiers)
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
can_buckle = TRUE
|
||||
buckle_lying = 0
|
||||
max_integrity = 200
|
||||
interaction_flags_click = NEED_DEXTERITY|FORBID_TELEKINESIS_REACH|ALLOW_RESTING
|
||||
///Is the machine moving? Setting this to FALSE will automatically call stop_moving()
|
||||
var/moving = FALSE
|
||||
///The distance the machine is allowed to roam from its starting point
|
||||
@@ -174,21 +175,19 @@
|
||||
attached_item.throw_at(destination, 4, 1)
|
||||
on_attached_delete()
|
||||
|
||||
/obj/structure/training_machine/AltClick(mob/user)
|
||||
. = ..()
|
||||
if(!user.can_perform_action(src, NEED_DEXTERITY|FORBID_TELEKINESIS_REACH|ALLOW_RESTING))
|
||||
return
|
||||
/obj/structure/training_machine/click_alt(mob/user)
|
||||
if(has_buckled_mobs())
|
||||
user_unbuckle_mob(buckled_mobs[1], user)
|
||||
return
|
||||
return CLICK_ACTION_SUCCESS
|
||||
if (!attached_item)
|
||||
return
|
||||
return NONE
|
||||
if (obj_flags & EMAGGED)
|
||||
to_chat(user, span_warning("The toolbox is somehow stuck on! It won't budge!"))
|
||||
return
|
||||
return CLICK_ACTION_BLOCKING
|
||||
to_chat(user, span_notice("You remove \the [attached_item] from the training device."))
|
||||
remove_attached_item(user)
|
||||
playsound(src, SFX_RUSTLE, 50, TRUE)
|
||||
return CLICK_ACTION_SUCCESS
|
||||
|
||||
/**
|
||||
* Toggle the machine's movement
|
||||
@@ -396,12 +395,10 @@
|
||||
if (!.)
|
||||
check_hit(hit_atom)
|
||||
|
||||
/obj/item/training_toolbox/AltClick(mob/user)
|
||||
. = ..()
|
||||
if(!can_interact(user))
|
||||
return
|
||||
/obj/item/training_toolbox/click_alt(mob/user)
|
||||
to_chat(user, span_notice("You push the 'Lap' button on the toolbox's display."))
|
||||
lap_hits = initial(lap_hits)
|
||||
return CLICK_ACTION_SUCCESS
|
||||
|
||||
/obj/item/training_toolbox/examine(mob/user)
|
||||
. = ..()
|
||||
|
||||
@@ -51,8 +51,6 @@
|
||||
qdel(src)
|
||||
return TRUE
|
||||
|
||||
/obj/structure/c_transit_tube/AltClick(mob/user)
|
||||
return ..() // This hotkey is BLACKLISTED since it's used by /datum/component/simple_rotation
|
||||
|
||||
// transit tube station
|
||||
/obj/structure/c_transit_tube/station
|
||||
|
||||
@@ -327,8 +327,6 @@
|
||||
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/windoor_assembly/AltClick(mob/user)
|
||||
return ..() // This hotkey is BLACKLISTED since it's used by /datum/component/simple_rotation
|
||||
|
||||
//Flips the windoor assembly, determines whather the door opens to the left or the right
|
||||
/obj/structure/windoor_assembly/verb/flip()
|
||||
|
||||
@@ -188,11 +188,11 @@
|
||||
return
|
||||
return ..()
|
||||
|
||||
/obj/structure/window/item_interaction(mob/living/user, obj/item/tool, list/modifiers, is_right_clicking)
|
||||
/obj/structure/window/item_interaction(mob/living/user, obj/item/tool, list/modifiers)
|
||||
if(!can_be_reached(user))
|
||||
return ITEM_INTERACT_SKIP_TO_ATTACK // Guess you get to hit it
|
||||
add_fingerprint(user)
|
||||
return ..()
|
||||
return NONE
|
||||
|
||||
/obj/structure/window/welder_act(mob/living/user, obj/item/tool)
|
||||
if(atom_integrity >= max_integrity)
|
||||
@@ -277,8 +277,6 @@
|
||||
add_fingerprint(user)
|
||||
return ..()
|
||||
|
||||
/obj/structure/window/AltClick(mob/user)
|
||||
return ..() // This hotkey is BLACKLISTED since it's used by /datum/component/simple_rotation
|
||||
|
||||
/obj/structure/window/set_anchored(anchorvalue)
|
||||
..()
|
||||
@@ -702,7 +700,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/window/reinforced/tinted/frosted/spaw
|
||||
|
||||
/obj/structure/window/reinforced/fulltile
|
||||
name = "full tile reinforced window"
|
||||
desc = "A full tile reinforced window"
|
||||
desc = "A full tile window that is reinforced with metal rods."
|
||||
icon = 'icons/obj/smooth_structures/reinforced_window.dmi' //ICON OVERRIDDEN IN SKYRAT AESTHETICS - SEE MODULE
|
||||
icon_state = "reinforced_window-0"
|
||||
base_icon_state = "reinforced_window"
|
||||
@@ -792,10 +790,18 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/window/reinforced/tinted/frosted/spaw
|
||||
name = "hardened shuttle window"
|
||||
flags_1 = PREVENT_CLICK_UNDER_1
|
||||
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
|
||||
obj_flags = parent_type::obj_flags | NO_DECONSTRUCTION
|
||||
|
||||
/obj/structure/window/reinforced/shuttle/indestructible/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd)
|
||||
return FALSE
|
||||
/obj/structure/window/reinforced/shuttle/indestructible/welder_act(mob/living/user, obj/item/tool)
|
||||
return NONE
|
||||
|
||||
/obj/structure/window/reinforced/shuttle/indestructible/screwdriver_act(mob/living/user, obj/item/tool)
|
||||
return NONE
|
||||
|
||||
/obj/structure/window/reinforced/shuttle/indestructible/wrench_act(mob/living/user, obj/item/tool)
|
||||
return NONE
|
||||
|
||||
/obj/structure/window/reinforced/shuttle/indestructible/crowbar_act(mob/living/user, obj/item/tool)
|
||||
return NONE
|
||||
|
||||
/obj/structure/window/reinforced/plasma/plastitanium
|
||||
name = "plastitanium window"
|
||||
|
||||
Reference in New Issue
Block a user