Merge branch 'master' of https://github.com/raspy-on-osu/Citadel-Station-13 into ventcrawl-refactor
This commit is contained in:
@@ -40,6 +40,16 @@
|
||||
if(istype(W, /obj/item/wrench) && !(flags_1&NODECONSTRUCT_1))
|
||||
W.play_tool_sound(src)
|
||||
deconstruct(TRUE)
|
||||
else if(istype(W, /obj/item/bedsheet))
|
||||
if(user.transferItemToLoc(W, drop_location()))
|
||||
to_chat(user, "<span class='notice'>You make \the [src] with [W].</span>")
|
||||
W.pixel_x = 0
|
||||
W.pixel_y = 0
|
||||
else if(istype(W, /obj/item/disk/nuclear))
|
||||
if(user.transferItemToLoc(W, drop_location()))
|
||||
to_chat(user, "<span class='notice'>You tuck little disky into bed. Good night disky.</span>")
|
||||
W.pixel_x = 6 //make sure they reach the pillow
|
||||
W.pixel_y = -6
|
||||
else
|
||||
return ..()
|
||||
|
||||
|
||||
@@ -22,6 +22,10 @@ LINEN BINS
|
||||
dog_fashion = /datum/dog_fashion/head/ghost
|
||||
var/list/dream_messages = list("white")
|
||||
|
||||
/obj/item/bedsheet/Initialize(mapload)
|
||||
. = ..()
|
||||
AddElement(/datum/element/bed_tuckable, 0, 0, 0)
|
||||
|
||||
/obj/item/bedsheet/attack(mob/living/M, mob/user)
|
||||
if(!attempt_initiate_surgery(src, M, user))
|
||||
..()
|
||||
@@ -243,7 +247,7 @@ LINEN BINS
|
||||
|
||||
/obj/item/bedsheet/random/Initialize()
|
||||
..()
|
||||
var/type = pick(typesof(/obj/item/bedsheet) - list(/obj/item/bedsheet/random, /obj/item/bedsheet/chameleon))
|
||||
var/type = pick(typesof(/obj/item/bedsheet) - (list(/obj/item/bedsheet/random, /obj/item/bedsheet/chameleon) + typesof(/obj/item/bedsheet/unlockable)))
|
||||
new type(loc)
|
||||
return INITIALIZE_HINT_QDEL
|
||||
|
||||
@@ -257,9 +261,32 @@ LINEN BINS
|
||||
chameleon_action = new(src)
|
||||
chameleon_action.chameleon_type = /obj/item/bedsheet
|
||||
chameleon_action.chameleon_name = "Bedsheet"
|
||||
chameleon_action.chameleon_blacklist = typecacheof(list(/obj/item/bedsheet/chameleon, /obj/item/bedsheet/random), only_root_path = TRUE)
|
||||
chameleon_action.chameleon_blacklist = typecacheof(list(/obj/item/bedsheet/chameleon, /obj/item/bedsheet/random, /obj/item/bedsheet/unlockable), only_root_path = FALSE)
|
||||
chameleon_action.initialize_disguises()
|
||||
|
||||
//unlockable bedsheets
|
||||
/obj/item/bedsheet/unlockable
|
||||
name = "unlockable bedsheet"
|
||||
desc = "this shouldn't be here!"
|
||||
|
||||
//janitor: clean 100 messes with mop as janitor
|
||||
/obj/item/bedsheet/unlockable/janitor
|
||||
name = "janitor bedsheet"
|
||||
desc = "A white bedsheet, with a warning sign on the front."
|
||||
icon_state = "sheetjanitor"
|
||||
|
||||
//cook: use microwave 100 times properly (contents must make one good item) as cook
|
||||
/obj/item/bedsheet/unlockable/cook
|
||||
name = "cook bedsheet"
|
||||
desc = "A grey bedsheet, with a microwave on the front."
|
||||
icon_state = "sheetcook"
|
||||
|
||||
//miner: redeem 100,000 mining points
|
||||
/obj/item/bedsheet/unlockable/miner
|
||||
name = "miner bedsheet"
|
||||
desc = "A red and black bedsheet. It seems to be made with goliath hide."
|
||||
icon_state = "sheetminer"
|
||||
|
||||
//bedsheet bin
|
||||
/obj/structure/bedsheetbin
|
||||
name = "linen bin"
|
||||
|
||||
@@ -446,8 +446,11 @@
|
||||
var/mob/living/L = O
|
||||
if(!issilicon(L))
|
||||
L.DefaultCombatKnockdown(40)
|
||||
O.forceMove(T)
|
||||
close()
|
||||
if(istype(src, /obj/structure/closet/supplypod/extractionpod))
|
||||
O.forceMove(src)
|
||||
else
|
||||
O.forceMove(T)
|
||||
close()
|
||||
else
|
||||
O.forceMove(T)
|
||||
return 1
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
new /obj/item/melee/flyswatter(src)
|
||||
new /obj/item/flashlight(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/caution(src)
|
||||
new /obj/item/clothing/suit/caution(src)
|
||||
new /obj/item/holosign_creator(src)
|
||||
new /obj/item/lightreplacer(src)
|
||||
new /obj/item/soap(src)
|
||||
|
||||
@@ -96,7 +96,7 @@
|
||||
new /obj/item/tank/internals/emergency_oxygen/engi(src)
|
||||
new /obj/item/analyzer(src)
|
||||
new /obj/item/holosign_creator/atmos(src)
|
||||
new /obj/item/holosign_creator/firelock(src)
|
||||
new /obj/item/holosign_creator/firelock(src) //what if atmos techs could test things they are meant to test, wild, innit?
|
||||
new /obj/item/watertank/atmos(src)
|
||||
new /obj/item/clothing/suit/fire/atmos(src)
|
||||
new /obj/item/clothing/head/hardhat/atmos(src)
|
||||
|
||||
@@ -47,6 +47,25 @@
|
||||
new /obj/item/clothing/glasses/hud/health(src)
|
||||
return
|
||||
|
||||
/obj/structure/closet/secure_closet/paramedic
|
||||
name = "paramedic's locker"
|
||||
req_access = list(ACCESS_MEDICAL)
|
||||
icon_state = "paramed_secure"
|
||||
|
||||
/obj/structure/closet/secure_closet/paramedic/PopulateContents()
|
||||
..()
|
||||
new /obj/item/clothing/suit/toggle/labcoat/paramedic(src)
|
||||
new /obj/item/clothing/under/rank/medical/paramedic(src)
|
||||
new /obj/item/clothing/under/rank/medical/paramedic/skirt(src)
|
||||
new /obj/item/radio/headset/headset_med(src)
|
||||
new /obj/item/defibrillator/loaded(src)
|
||||
new /obj/item/clothing/gloves/color/latex/nitrile(src)
|
||||
new /obj/item/storage/belt/medical(src)
|
||||
new /obj/item/clothing/glasses/hud/health(src)
|
||||
new /obj/item/pinpointer/crew(src)
|
||||
new /obj/item/sensor_device(src)
|
||||
return
|
||||
|
||||
/obj/structure/closet/secure_closet/CMO
|
||||
name = "\proper chief medical officer's locker"
|
||||
req_access = list(ACCESS_CMO)
|
||||
|
||||
@@ -73,7 +73,7 @@
|
||||
l.janicart_insert(user,src)
|
||||
else
|
||||
to_chat(user, fail_msg)
|
||||
else if(istype(I, /obj/item/caution))
|
||||
else if(istype(I, /obj/item/clothing/suit/caution))
|
||||
if(signs < max_signs)
|
||||
put_in_cart(I, user)
|
||||
signs++
|
||||
@@ -104,7 +104,7 @@
|
||||
items += list("Spray bottle" = image(icon = myspray.icon, icon_state = myspray.icon_state))
|
||||
if(myreplacer)
|
||||
items += list("Light replacer" = image(icon = myreplacer.icon, icon_state = myreplacer.icon_state))
|
||||
var/obj/item/caution/sign = locate() in src
|
||||
var/obj/item/clothing/suit/caution/sign = locate() in src
|
||||
if(sign)
|
||||
items += list("Sign" = image(icon = sign.icon, icon_state = sign.icon_state))
|
||||
|
||||
|
||||
@@ -56,17 +56,17 @@
|
||||
desc = "A direction sign, pointing out which way the Cafe is."
|
||||
icon_state = "direction_cafe"
|
||||
|
||||
obj/structure/sign/directions/rooms
|
||||
/obj/structure/sign/directions/rooms
|
||||
name = "room"
|
||||
desc = "Room numbers, helps others find you!"
|
||||
icon_state = "roomnum"
|
||||
|
||||
obj/structure/sign/directions/dorms
|
||||
/obj/structure/sign/directions/dorms
|
||||
name = "dorm"
|
||||
desc = "Dorm numbers, help others find you, or you find others."
|
||||
icon_state = "dormnum"
|
||||
|
||||
obj/structure/sign/directions/cells
|
||||
/obj/structure/sign/directions/cells
|
||||
name = "room"
|
||||
desc = "So the less fortunate amongst us know where they'll be staying."
|
||||
icon_state = "cellnum"
|
||||
|
||||
@@ -269,13 +269,13 @@
|
||||
UnregisterSignal(source, COMSIG_MOVABLE_MOVED)
|
||||
|
||||
/obj/structure/table/rolling/Moved(atom/OldLoc, Dir)
|
||||
. = ..()
|
||||
for(var/mob/M in OldLoc.contents)//Kidnap everyone on top
|
||||
M.forceMove(loc)
|
||||
for(var/x in attached_items)
|
||||
var/atom/movable/AM = x
|
||||
if(!AM.Move(loc))
|
||||
RemoveItemFromTable(AM, AM.loc)
|
||||
return TRUE
|
||||
|
||||
/*
|
||||
* Glass tables
|
||||
|
||||
@@ -126,12 +126,13 @@
|
||||
|
||||
if(current_tube == null)
|
||||
setDir(next_dir)
|
||||
Move(get_step(loc, dir), dir) // Allow collisions when leaving the tubes.
|
||||
Move(get_step(loc, dir), dir, DELAY_TO_GLIDE_SIZE(exit_delay)) // Allow collisions when leaving the tubes.
|
||||
break
|
||||
|
||||
last_delay = current_tube.enter_delay(src, next_dir)
|
||||
sleep(last_delay)
|
||||
setDir(next_dir)
|
||||
set_glide_size(DELAY_TO_GLIDE_SIZE(last_delay + exit_delay))
|
||||
forceMove(next_loc) // When moving from one tube to another, skip collision and such.
|
||||
density = current_tube.density
|
||||
|
||||
|
||||
@@ -56,6 +56,7 @@
|
||||
animate(src, alpha = initial(alpha), time = time_between_triggers)
|
||||
|
||||
/obj/structure/trap/Crossed(atom/movable/AM)
|
||||
. = ..()
|
||||
if(last_trigger + time_between_triggers > world.time)
|
||||
return
|
||||
// Don't want the traps triggered by sparks, ghosts or projectiles.
|
||||
@@ -67,6 +68,7 @@
|
||||
return
|
||||
if(M.anti_magic_check())
|
||||
flare()
|
||||
return
|
||||
if(charges <= 0)
|
||||
return
|
||||
flare()
|
||||
|
||||
Reference in New Issue
Block a user