mirror of
https://github.com/Yawn-Wider/YWPolarisVore.git
synced 2026-08-23 04:58:08 +01:00
Merge branch 'release' of https://github.com/VOREStation/VOREStation into izac
This commit is contained in:
@@ -394,7 +394,7 @@
|
||||
frame_canvas(user, I)
|
||||
else if(current_canvas && current_canvas.painting_name == initial(current_canvas.painting_name) && istype(I,/obj/item/weapon/pen))
|
||||
try_rename(user)
|
||||
else if(current_canvas && I.is_wirecutter())
|
||||
else if(current_canvas && I.has_tool_quality(TOOL_WIRECUTTER))
|
||||
unframe_canvas(user)
|
||||
else
|
||||
return ..()
|
||||
|
||||
@@ -87,12 +87,12 @@
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/catwalk/attackby(obj/item/C as obj, mob/user as mob)
|
||||
if(istype(C, /obj/item/weapon/weldingtool))
|
||||
var/obj/item/weapon/weldingtool/WT = C
|
||||
if(C.has_tool_quality(TOOL_WELDER))
|
||||
var/obj/item/weapon/weldingtool/WT = C.get_welder()
|
||||
if(WT.isOn() && WT.remove_fuel(0, user))
|
||||
deconstruct(user)
|
||||
return
|
||||
if(C.is_crowbar() && plated_tile)
|
||||
if(C.has_tool_quality(TOOL_CROWBAR) && plated_tile)
|
||||
hatch_open = !hatch_open
|
||||
if(hatch_open)
|
||||
playsound(src, 'sound/items/Crowbar.ogg', 100, 2)
|
||||
|
||||
@@ -271,7 +271,7 @@
|
||||
return
|
||||
|
||||
/obj/structure/closet/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if(W.is_wrench())
|
||||
if(W.has_tool_quality(TOOL_WRENCH))
|
||||
if(opened)
|
||||
if(anchored)
|
||||
user.visible_message("\The [user] begins unsecuring \the [src] from the floor.", "You start unsecuring \the [src] from the floor.")
|
||||
@@ -291,8 +291,8 @@
|
||||
return 0
|
||||
if(istype(W,/obj/item/tk_grab))
|
||||
return 0
|
||||
if(istype(W, /obj/item/weapon/weldingtool))
|
||||
var/obj/item/weapon/weldingtool/WT = W
|
||||
if(W.has_tool_quality(TOOL_WELDER))
|
||||
var/obj/item/weapon/weldingtool/WT = W.get_welder()
|
||||
if(!WT.remove_fuel(0,user))
|
||||
if(!WT.isOn())
|
||||
return
|
||||
@@ -326,8 +326,8 @@
|
||||
else if(seal_tool)
|
||||
if(istype(W, seal_tool))
|
||||
var/obj/item/weapon/S = W
|
||||
if(istype(S, /obj/item/weapon/weldingtool))
|
||||
var/obj/item/weapon/weldingtool/WT = S
|
||||
if(S.has_tool_quality(TOOL_WELDER))
|
||||
var/obj/item/weapon/weldingtool/WT = S.get_welder()
|
||||
if(!WT.remove_fuel(0,user))
|
||||
if(!WT.isOn())
|
||||
return
|
||||
|
||||
@@ -1441,6 +1441,10 @@
|
||||
decals = null
|
||||
color = COLOR_OFF_WHITE
|
||||
|
||||
/decl/closet_appearance/wall_double/wooden
|
||||
decals = null
|
||||
color = WOOD_COLOR_RICH
|
||||
|
||||
/decl/closet_appearance/wall_double/medical
|
||||
decals = null
|
||||
color = COLOR_OFF_WHITE
|
||||
@@ -1578,6 +1582,15 @@
|
||||
/decl/closet_appearance/wall_double/generic_civ
|
||||
color = COLOR_DARK_BLUE_GRAY
|
||||
|
||||
/decl/closet_appearance/wall_double/casino
|
||||
color = COLOR_GRAY20
|
||||
decals = null
|
||||
extra_decals = list(
|
||||
"stripe_outer" = COLOR_GOLD,
|
||||
"stripe_inner" = COLOR_ORANGE,
|
||||
"thaler" = COLOR_GREEN
|
||||
)
|
||||
|
||||
// Carts
|
||||
/decl/closet_appearance/cart
|
||||
color = COLOR_GRAY20
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
icon_state = icon_closed
|
||||
|
||||
/obj/structure/closet/secure_closet/egg/attackby(obj/item/weapon/W, mob/user as mob) //This also prevents crew from welding the eggs and making them unable to be opened.
|
||||
if(istype(W, /obj/item/weapon/weldingtool))
|
||||
if(W.has_tool_quality(TOOL_WELDER))
|
||||
src.dump_contents()
|
||||
qdel(src)
|
||||
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
to_chat(user, "<span class='notice'>Access Denied</span>")
|
||||
|
||||
/obj/structure/closet/secure_closet/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if(W.is_wrench())
|
||||
if(W.has_tool_quality(TOOL_WRENCH))
|
||||
if(opened)
|
||||
if(anchored)
|
||||
user.visible_message("\The [user] begins unsecuring \the [src] from the floor.", "You start unsecuring \the [src] from the floor.")
|
||||
@@ -90,7 +90,7 @@
|
||||
spark_system.start()
|
||||
playsound(src, 'sound/weapons/blade1.ogg', 50, 1)
|
||||
playsound(src, "sparks", 50, 1)
|
||||
else if(istype(W,/obj/item/weapon/packageWrap) || istype(W,/obj/item/weapon/weldingtool))
|
||||
else if(istype(W,/obj/item/weapon/packageWrap) || W.has_tool_quality(TOOL_WELDER))
|
||||
return ..(W,user)
|
||||
else
|
||||
togglelock(user)
|
||||
|
||||
@@ -80,6 +80,27 @@
|
||||
/obj/structure/closet/walllocker/medical/east
|
||||
pixel_x = 32
|
||||
dir = EAST
|
||||
|
||||
/obj/structure/closet/walllocker/wooden
|
||||
name = "wooden cabinet"
|
||||
desc = "A wall mounted storage cabinet."
|
||||
closet_appearance = /decl/closet_appearance/wall_double/wooden
|
||||
|
||||
/obj/structure/closet/walllocker/wooden/north
|
||||
pixel_y = 32
|
||||
dir = SOUTH
|
||||
|
||||
/obj/structure/closet/walllocker/wooden/south
|
||||
pixel_y = -32
|
||||
dir = NORTH
|
||||
|
||||
/obj/structure/closet/walllocker/wooden/west
|
||||
pixel_x = -32
|
||||
dir = WEST
|
||||
|
||||
/obj/structure/closet/walllocker/wooden/east
|
||||
pixel_x = 32
|
||||
dir = EAST
|
||||
//VOREStation Add End
|
||||
|
||||
//double-size "cabinet" lockers, from Killian
|
||||
@@ -315,6 +336,25 @@
|
||||
pixel_x = 32
|
||||
dir = EAST
|
||||
|
||||
/obj/structure/closet/walllocker_double/casino
|
||||
closet_appearance = /decl/closet_appearance/wall_double/casino
|
||||
|
||||
/obj/structure/closet/walllocker_double/casino/north
|
||||
pixel_y = 32
|
||||
dir = SOUTH
|
||||
|
||||
/obj/structure/closet/walllocker_double/casino/south
|
||||
pixel_y = -32
|
||||
dir = NORTH
|
||||
|
||||
/obj/structure/closet/walllocker_double/casino/west
|
||||
pixel_x = -32
|
||||
dir = WEST
|
||||
|
||||
/obj/structure/closet/walllocker_double/casino/east
|
||||
pixel_x = 32
|
||||
dir = EAST
|
||||
|
||||
/obj/structure/closet/walllocker_double/cargo
|
||||
desc = "A wall mounted cabinet. This one is in cargo colors."
|
||||
closet_appearance = /decl/closet_appearance/wall_double/cargo
|
||||
|
||||
@@ -90,7 +90,7 @@
|
||||
src.set_dir(turn(src.dir, 90))
|
||||
|
||||
/obj/structure/closet/crate/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if(W.is_wrench() && istype(src,/obj/structure/closet/crate/bin))
|
||||
if(W.has_tool_quality(TOOL_WRENCH) && istype(src,/obj/structure/closet/crate/bin))
|
||||
return ..()
|
||||
else if(opened)
|
||||
if(isrobot(user))
|
||||
@@ -117,7 +117,7 @@
|
||||
user.drop_item()
|
||||
W.forceMove(src)
|
||||
return
|
||||
else if(W.is_wirecutter())
|
||||
else if(W.has_tool_quality(TOOL_WIRECUTTER))
|
||||
if(rigged)
|
||||
to_chat(user , "<span class='notice'>You cut away the wiring.</span>")
|
||||
playsound(src, W.usesound, 100, 1)
|
||||
@@ -730,6 +730,15 @@
|
||||
open_sound = 'sound/effects/wooden_closet_open.ogg'
|
||||
close_sound = 'sound/effects/wooden_closet_close.ogg'
|
||||
|
||||
//Chest
|
||||
/obj/structure/closet/crate/chest
|
||||
name = "chest"
|
||||
desc = "A fancy chest made from wood and lined with red velvet."
|
||||
icon = 'icons/obj/closets/chest.dmi'
|
||||
closet_appearance = null
|
||||
open_sound = 'sound/effects/wooden_closet_open.ogg'
|
||||
close_sound = 'sound/effects/wooden_closet_close.ogg'
|
||||
|
||||
//Mining Cart
|
||||
/obj/structure/closet/crate/miningcar
|
||||
name = "mining cart"
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
var/turf/T = get_turf(src)
|
||||
if(!T)
|
||||
to_chat(user, "<span class='notice'>You can't open this here!</span>")
|
||||
if(W.is_crowbar())
|
||||
if(W.has_tool_quality(TOOL_CROWBAR))
|
||||
new /obj/item/stack/material/wood(src)
|
||||
|
||||
for(var/atom/movable/AM in contents)
|
||||
@@ -55,7 +55,7 @@
|
||||
icon_state = "vehiclecrate"
|
||||
|
||||
/obj/structure/largecrate/hoverpod/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if(W.is_crowbar())
|
||||
if(W.has_tool_quality(TOOL_CROWBAR))
|
||||
var/obj/item/mecha_parts/mecha_equipment/ME
|
||||
var/obj/mecha/working/hoverpod/H = new (loc)
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
desc = "You hear chirping and cawing inside the crate. It sounds like there are a lot of birds in there..."
|
||||
|
||||
/obj/structure/largecrate/birds/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if(W.is_crowbar())
|
||||
if(W.has_tool_quality(TOOL_CROWBAR))
|
||||
new /obj/item/stack/material/wood(src)
|
||||
new /mob/living/simple_mob/animal/passive/bird(src)
|
||||
new /mob/living/simple_mob/animal/passive/bird/parrot/kea(src)
|
||||
|
||||
@@ -31,11 +31,11 @@
|
||||
var/turf/T = get_turf(src)
|
||||
if(!T)
|
||||
to_chat(user, "<span class='notice'>You can't open this here!</span>")
|
||||
if(W.is_wrench() && do_after(user, 60 * W.toolspeed, src))
|
||||
if(W.has_tool_quality(TOOL_WRENCH) && do_after(user, 60 * W.toolspeed, src))
|
||||
playsound(src, W.usesound, 50, 1)
|
||||
disassemble(W, user)
|
||||
user.visible_message("<span class='notice'>[user] begins loosening \the [src]'s bolts.</span>")
|
||||
if(W.is_wirecutter() && do_after(user, 70 * W.toolspeed, src))
|
||||
if(W.has_tool_quality(TOOL_WIRECUTTER) && do_after(user, 70 * W.toolspeed, src))
|
||||
playsound(src, W.usesound, 50, 1)
|
||||
disassemble(W, user)
|
||||
user.visible_message("<span class='notice'>[user] begins cutting \the [src]'s bolts.</span>")
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
layer = OBJ_LAYER
|
||||
|
||||
/obj/structure/curtain/attackby(obj/item/P, mob/user)
|
||||
if(P.is_wirecutter())
|
||||
if(P.has_tool_quality(TOOL_WIRECUTTER))
|
||||
playsound(src, P.usesound, 50, 1)
|
||||
to_chat(user, "<span class='notice'>You start to cut the shower curtains.</span>")
|
||||
if(do_after(user, 10))
|
||||
|
||||
@@ -20,14 +20,14 @@
|
||||
layer = BELOW_MOB_LAYER
|
||||
|
||||
/obj/structure/dancepole/attackby(var/obj/item/O as obj, var/mob/user as mob)
|
||||
if(O.is_screwdriver())
|
||||
if(O.has_tool_quality(TOOL_SCREWDRIVER))
|
||||
anchored = !anchored
|
||||
playsound(src, O.usesound, 50, 1)
|
||||
if(anchored)
|
||||
to_chat(user, "<font color='blue'>You secure \the [src].</font>")
|
||||
else
|
||||
to_chat(user, "<font color='blue'>You unsecure \the [src].</font>")
|
||||
if(O.is_wrench())
|
||||
if(O.has_tool_quality(TOOL_WRENCH))
|
||||
playsound(src, O.usesound, 50, 1)
|
||||
to_chat(user, "<span class='notice'>Now disassembling \the [src]...</span>")
|
||||
if(do_after(user, 30 * O.toolspeed))
|
||||
|
||||
@@ -170,8 +170,8 @@
|
||||
rename_door(user)
|
||||
return
|
||||
|
||||
if(istype(W, /obj/item/weapon/weldingtool) && ( (istext(glass)) || (glass == 1) || (!anchored) ))
|
||||
var/obj/item/weapon/weldingtool/WT = W
|
||||
if(W.has_tool_quality(TOOL_WELDER) && ( (istext(glass)) || (glass == 1) || (!anchored) ))
|
||||
var/obj/item/weapon/weldingtool/WT = W.get_welder()
|
||||
if (WT.remove_fuel(0, user))
|
||||
playsound(src, WT.usesound, 50, 1)
|
||||
if(istext(glass))
|
||||
@@ -200,7 +200,7 @@
|
||||
to_chat(user, "<span class='notice'>You need more welding fuel.</span>")
|
||||
return
|
||||
|
||||
else if(W.is_wrench() && state == 0)
|
||||
else if(W.has_tool_quality(TOOL_WRENCH) && state == 0)
|
||||
playsound(src, W.usesound, 100, 1)
|
||||
if(anchored)
|
||||
user.visible_message("[user] begins unsecuring the airlock assembly from the floor.", "You starts unsecuring the airlock assembly from the floor.")
|
||||
@@ -223,7 +223,7 @@
|
||||
src.state = 1
|
||||
to_chat(user, "<span class='notice'>You wire the airlock.</span>")
|
||||
|
||||
else if(W.is_wirecutter() && state == 1 )
|
||||
else if(W.has_tool_quality(TOOL_WIRECUTTER) && state == 1 )
|
||||
playsound(src, W.usesound, 100, 1)
|
||||
user.visible_message("[user] cuts the wires from the airlock assembly.", "You start to cut the wires from airlock assembly.")
|
||||
|
||||
@@ -245,7 +245,7 @@
|
||||
src.state = 2
|
||||
src.electronics = W
|
||||
|
||||
else if(W.is_crowbar() && state == 2 )
|
||||
else if(W.has_tool_quality(TOOL_CROWBAR) && state == 2 )
|
||||
//This should never happen, but just in case I guess
|
||||
if (!electronics)
|
||||
to_chat(user, "<span class='notice'>There was nothing to remove.</span>")
|
||||
@@ -287,7 +287,7 @@
|
||||
to_chat(user, "<span class='notice'>You installed [material_display_name(material_name)] plating into the airlock assembly.</span>")
|
||||
glass = material_name
|
||||
|
||||
else if(W.is_screwdriver() && state == 2 )
|
||||
else if(W.has_tool_quality(TOOL_SCREWDRIVER) && state == 2 )
|
||||
playsound(src, W.usesound, 100, 1)
|
||||
to_chat(user, "<span class='notice'>Now finishing the airlock.</span>")
|
||||
|
||||
|
||||
@@ -31,15 +31,15 @@
|
||||
if(!T)
|
||||
warning("Drop pod wasn't spawned on a turf")
|
||||
return
|
||||
|
||||
|
||||
moveToNullspace()
|
||||
icon_state = "[initial(icon_state)]_falling"
|
||||
|
||||
|
||||
// Show warning on 3x3 area centred on our drop spot
|
||||
var/list/turfs_nearby = block(get_step(T, SOUTHWEST), get_step(T, NORTHEAST))
|
||||
for(var/turf/TN in turfs_nearby)
|
||||
new /obj/effect/temporary_effect/shuttle_landing(TN)
|
||||
|
||||
|
||||
// Wait a minute
|
||||
sleep(4 SECONDS)
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
T.hotspot_expose(900)
|
||||
sleep(1 SECOND)
|
||||
filters = null
|
||||
|
||||
|
||||
// CRONCH
|
||||
playsound(src, 'sound/effects/meteorimpact.ogg', 50, 1)
|
||||
if(!polite)
|
||||
@@ -69,7 +69,7 @@
|
||||
else
|
||||
for(var/turf/simulated/floor/F in view(1, T))
|
||||
F.burn_tile(900)
|
||||
|
||||
|
||||
for(var/obj/O in T)
|
||||
if(O == src)
|
||||
continue
|
||||
@@ -80,7 +80,7 @@
|
||||
// Landed! Simmer
|
||||
plane = initial(plane)
|
||||
icon_state = "[initial(icon_state)]"
|
||||
|
||||
|
||||
if(auto_open)
|
||||
sleep(2 SECONDS)
|
||||
open_pod()
|
||||
@@ -109,7 +109,7 @@
|
||||
user.visible_message("<b>[user]</b> opens \the [src]!","You open \the [src]!")
|
||||
|
||||
/obj/structure/drop_pod/attackby(obj/item/O, mob/user)
|
||||
if(O.is_wrench())
|
||||
if(O.has_tool_quality(TOOL_WRENCH))
|
||||
if(finished)
|
||||
to_chat(user, "<span class='notice'>You start breaking down \the [src].</span>")
|
||||
if(do_after(user, 10 SECONDS, src, exclusive = TASK_ALL_EXCLUSIVE))
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
return
|
||||
|
||||
/obj/structure/bed/chair/e_chair/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if(W.is_wrench())
|
||||
if(W.has_tool_quality(TOOL_WRENCH))
|
||||
var/obj/structure/bed/chair/C = new /obj/structure/bed/chair(loc)
|
||||
playsound(src, W.usesound, 50, 1)
|
||||
C.set_dir(dir)
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
to_chat(user, "<span class='notice'>You place [O] in [src].</span>")
|
||||
else
|
||||
opened = !opened
|
||||
if(O.is_wrench())
|
||||
if(O.has_tool_quality(TOOL_WRENCH))
|
||||
if(!has_extinguisher)
|
||||
to_chat(user, "<span class='notice'>You start to unwrench the extinguisher cabinet.</span>")
|
||||
playsound(src, O.usesound, 50, 1)
|
||||
|
||||
@@ -69,7 +69,7 @@
|
||||
return ..()
|
||||
|
||||
/obj/structure/fence/attackby(obj/item/W, mob/user)
|
||||
if(W.is_wirecutter())
|
||||
if(W.has_tool_quality(TOOL_WIRECUTTER))
|
||||
if(!cuttable)
|
||||
to_chat(user, span("warning", "This section of the fence can't be cut."))
|
||||
return
|
||||
@@ -170,6 +170,41 @@
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
/obj/structure/fence/wood
|
||||
cuttable = FALSE
|
||||
name = "fence"
|
||||
desc = "A wooden fence. Not as effective as a wall, but generally it keeps people out."
|
||||
description_info = "Projectiles can freely pass fences."
|
||||
density = TRUE
|
||||
anchored = TRUE
|
||||
|
||||
icon = 'icons/obj/fence.dmi'
|
||||
icon_state = "wood_straight"
|
||||
|
||||
/obj/structure/fence/wood/end
|
||||
icon_state = "wood_end"
|
||||
|
||||
/obj/structure/fence/wood/corner
|
||||
icon_state = "wood_corner"
|
||||
|
||||
/obj/structure/fence/hedge
|
||||
cuttable = FALSE
|
||||
name = "hedge"
|
||||
desc = "A large hedge. Not as effective as a wall, but generally it keeps people out."
|
||||
description_info = "Projectiles can freely pass fences."
|
||||
density = TRUE
|
||||
anchored = TRUE
|
||||
opacity = 1
|
||||
|
||||
icon = 'icons/obj/fence.dmi'
|
||||
icon_state = "hedge_straight"
|
||||
|
||||
/obj/structure/fence/hedge/end
|
||||
icon_state = "hedge_end"
|
||||
|
||||
/obj/structure/fence/hedge/corner
|
||||
icon_state = "hedge_corner"
|
||||
|
||||
#undef CUT_TIME
|
||||
#undef CLIMB_TIME
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
var/list/qualifiers = list("with ease", "without any trouble", "with great effort")
|
||||
|
||||
/obj/structure/fitness/weightlifter/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if(W.is_wrench())
|
||||
if(W.has_tool_quality(TOOL_WRENCH))
|
||||
playsound(src, 'sound/items/Deconstruct.ogg', 75, 1)
|
||||
weight = ((weight) % qualifiers.len) + 1
|
||||
to_chat(user, "You set the machine's weight level to [weight].")
|
||||
|
||||
@@ -640,3 +640,48 @@
|
||||
|
||||
/obj/structure/flora/sif/frostbelle/get_harvestable_desc()
|
||||
return "<span class='notice'>\The [src] seems to be budding.</span>"
|
||||
|
||||
//Start of underwater plants
|
||||
|
||||
/obj/structure/flora/underwater
|
||||
name = "underwater plant"
|
||||
desc = "A plant that thrives deep under water."
|
||||
icon = 'icons/obj/flora/underwaterflora.dmi'
|
||||
icon_state = "plant-1"
|
||||
|
||||
/obj/structure/flora/underwater/plant1
|
||||
icon_state = "plant-1"
|
||||
|
||||
/obj/structure/flora/underwater/plant2
|
||||
icon_state = "plant-2"
|
||||
|
||||
/obj/structure/flora/underwater/plant3
|
||||
icon_state = "plant-3"
|
||||
|
||||
/obj/structure/flora/underwater/plant4
|
||||
icon_state = "plant-4"
|
||||
|
||||
/obj/structure/flora/underwater/plant5
|
||||
icon_state = "plant-5"
|
||||
|
||||
/obj/structure/flora/underwater/seaweed1
|
||||
icon_state = "seaweed-1"
|
||||
|
||||
/obj/structure/flora/underwater/seaweed2
|
||||
icon_state = "seaweed-2"
|
||||
|
||||
/obj/structure/flora/underwater/seaweed3
|
||||
icon_state = "seaweed-3"
|
||||
|
||||
/obj/structure/flora/underwater/grass1
|
||||
icon_state = "grass-1"
|
||||
|
||||
/obj/structure/flora/underwater/grass2
|
||||
icon_state = "grass-2"
|
||||
|
||||
/obj/structure/flora/underwater/grass3
|
||||
icon_state = "grass-3"
|
||||
|
||||
/obj/structure/flora/underwater/grass4
|
||||
icon_state = "grass-4"
|
||||
|
||||
|
||||
@@ -53,7 +53,14 @@
|
||||
"Snapdragon" =/mob/living/simple_mob/vore/pakkun/snapdragon,
|
||||
"Sand pakkun" = /mob/living/simple_mob/vore/pakkun/sand,
|
||||
"Fire pakkun" = /mob/living/simple_mob/vore/pakkun/fire,
|
||||
"Amethyst pakkun" = /mob/living/simple_mob/vore/pakkun/purple
|
||||
"Amethyst pakkun" = /mob/living/simple_mob/vore/pakkun/purple,
|
||||
"Raptor" = /mob/living/simple_mob/vore/raptor,
|
||||
"Giant Bat" = /mob/living/simple_mob/vore/bat,
|
||||
"Scel (Orange)" = /mob/living/simple_mob/vore/scel/orange,
|
||||
"Scel (Blue)" = /mob/living/simple_mob/vore/scel/blue,
|
||||
"Scel (Purple)" = /mob/living/simple_mob/vore/scel/purple,
|
||||
"Scel (Red)" = /mob/living/simple_mob/vore/scel/red,
|
||||
"Scel (Green)" = /mob/living/simple_mob/vore/scel/green
|
||||
)
|
||||
|
||||
/obj/structure/ghost_pod/ghost_activated/maintpred/create_occupant(var/mob/M)
|
||||
@@ -66,6 +73,10 @@
|
||||
reset_ghostpod()
|
||||
return
|
||||
|
||||
//No OOC notes
|
||||
if (not_has_ooc_text(M))
|
||||
return
|
||||
|
||||
while(finalized == "No" && M.client)
|
||||
choice = tgui_input_list(M, "What type of predator do you want to play as?", "Maintpred Choice", possible_mobs)
|
||||
if(!choice) //We probably pushed the cancel button on the mob selection. Let's just put the ghost pod back in the list.
|
||||
@@ -115,6 +126,11 @@
|
||||
|
||||
/obj/structure/ghost_pod/ghost_activated/morphspawn/create_occupant(var/mob/M)
|
||||
..()
|
||||
|
||||
//No OOC notes
|
||||
if (not_has_ooc_text(M))
|
||||
return
|
||||
|
||||
var/mob/living/simple_mob/vore/morph/newMorph = new /mob/living/simple_mob/vore/morph(get_turf(src))
|
||||
if(M.mind)
|
||||
M.mind.transfer_to(newMorph)
|
||||
|
||||
@@ -90,6 +90,11 @@
|
||||
if(jobban_isbanned(user, "GhostRoles"))
|
||||
to_chat(user, "<span class='warning'>You cannot inhabit this creature because you are banned from playing ghost roles.</span>")
|
||||
return
|
||||
|
||||
//No OOC notes
|
||||
if (not_has_ooc_text(user))
|
||||
return
|
||||
|
||||
//VOREStation Add End
|
||||
if(used)
|
||||
to_chat(user, "<span class='warning'>Another spirit appears to have gotten to \the [src] before you. Sorry.</span>")
|
||||
|
||||
@@ -15,6 +15,10 @@
|
||||
to_chat(user, "<span class='warning'>You cannot inhabit this creature because you are banned from playing ghost roles.</span>")
|
||||
return
|
||||
|
||||
//No OOC notes
|
||||
if (not_has_ooc_text(user))
|
||||
return
|
||||
|
||||
if(!remains_active || busy)
|
||||
return
|
||||
|
||||
@@ -51,4 +55,4 @@
|
||||
/obj/structure/ghost_pod/ghost_activated/Initialize(var/mapload)
|
||||
. = ..()
|
||||
if(!mapload)
|
||||
ghostpod_startup(spawn_active)
|
||||
ghostpod_startup(spawn_active)
|
||||
|
||||
@@ -146,7 +146,7 @@
|
||||
reinforce_girder()
|
||||
|
||||
/obj/structure/girder/attackby(obj/item/W as obj, mob/user as mob)
|
||||
if(W.is_wrench() && state == 0)
|
||||
if(W.has_tool_quality(TOOL_WRENCH) && state == 0)
|
||||
if(anchored && !reinf_material)
|
||||
playsound(src, W.usesound, 100, 1)
|
||||
to_chat(user, "<span class='notice'>Now disassembling the girder...</span>")
|
||||
@@ -172,7 +172,7 @@
|
||||
to_chat(user, "<span class='notice'>You drill through the girder!</span>")
|
||||
dismantle()
|
||||
|
||||
else if(W.is_screwdriver())
|
||||
else if(W.has_tool_quality(TOOL_SCREWDRIVER))
|
||||
if(state == 2)
|
||||
playsound(src, W.usesound, 100, 1)
|
||||
to_chat(user, "<span class='notice'>Now unsecuring support struts...</span>")
|
||||
@@ -185,7 +185,7 @@
|
||||
reinforcing = !reinforcing
|
||||
to_chat(user, "<span class='notice'>\The [src] can now be [reinforcing? "reinforced" : "constructed"]!</span>")
|
||||
|
||||
else if(W.is_wirecutter() && state == 1)
|
||||
else if(W.has_tool_quality(TOOL_WIRECUTTER) && state == 1)
|
||||
playsound(src, W.usesound, 100, 1)
|
||||
to_chat(user, "<span class='notice'>Now removing support struts...</span>")
|
||||
if(do_after(user,40 * W.toolspeed))
|
||||
@@ -195,7 +195,7 @@
|
||||
reinf_material = null
|
||||
reset_girder()
|
||||
|
||||
else if(W.is_crowbar() && state == 0 && anchored)
|
||||
else if(W.has_tool_quality(TOOL_CROWBAR) && state == 0 && anchored)
|
||||
playsound(src, W.usesound, 100, 1)
|
||||
to_chat(user, "<span class='notice'>Now dislodging the girder...</span>")
|
||||
if(do_after(user, 40 * W.toolspeed))
|
||||
@@ -339,7 +339,7 @@
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/girder/cult/attackby(obj/item/W as obj, mob/user as mob)
|
||||
if(W.is_wrench())
|
||||
if(W.has_tool_quality(TOOL_WRENCH))
|
||||
playsound(src, W.usesound, 100, 1)
|
||||
to_chat(user, "<span class='notice'>Now disassembling the girder...</span>")
|
||||
if(do_after(user,40 * W.toolspeed))
|
||||
@@ -419,4 +419,3 @@
|
||||
|
||||
/obj/structure/girder/eris
|
||||
wall_type = /turf/simulated/wall/eris
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
return TRUE
|
||||
|
||||
/obj/structure/gravemarker/attackby(obj/item/weapon/W, mob/user as mob)
|
||||
if(W.is_screwdriver())
|
||||
if(W.has_tool_quality(TOOL_SCREWDRIVER))
|
||||
var/carving_1 = sanitizeSafe(tgui_input_text(user, "Who is \the [src.name] for?", "Gravestone Naming", null, MAX_NAME_LEN), MAX_NAME_LEN)
|
||||
if(carving_1)
|
||||
user.visible_message("[user] starts carving \the [src.name].", "You start carving \the [src.name].")
|
||||
@@ -67,7 +67,7 @@
|
||||
epitaph += carving_2
|
||||
update_icon()
|
||||
return
|
||||
if(W.is_wrench())
|
||||
if(W.has_tool_quality(TOOL_WRENCH))
|
||||
user.visible_message("[user] starts taking down \the [src.name].", "You start taking down \the [src.name].")
|
||||
if(do_after(user, material.hardness * W.toolspeed))
|
||||
user.visible_message("[user] takes down \the [src.name].", "You take down \the [src.name].")
|
||||
|
||||
@@ -94,12 +94,12 @@
|
||||
return
|
||||
if(istype(W, /obj/item/weapon/rcd)) // To stop us from hitting the grille when building windows, because grilles don't let parent handle it properly.
|
||||
return FALSE
|
||||
else if(W.is_wirecutter())
|
||||
else if(W.has_tool_quality(TOOL_WIRECUTTER))
|
||||
if(!shock(user, 100))
|
||||
playsound(src, W.usesound, 100, 1)
|
||||
new /obj/item/stack/rods(get_turf(src), destroyed ? 1 : 2)
|
||||
qdel(src)
|
||||
else if((W.is_screwdriver()) && (istype(loc, /turf/simulated) || anchored))
|
||||
else if((W.has_tool_quality(TOOL_SCREWDRIVER)) && (istype(loc, /turf/simulated) || anchored))
|
||||
if(!shock(user, 90))
|
||||
playsound(src, W.usesound, 100, 1)
|
||||
anchored = !anchored
|
||||
|
||||
@@ -176,7 +176,7 @@ GLOBAL_LIST_BOILERPLATE(all_janitorial_carts, /obj/structure/janitorialcart)
|
||||
//This prevents dumb stuff like splashing the cart with the contents of a container, after putting said container into trash
|
||||
|
||||
else if (!has_items)
|
||||
if (I.is_wrench())
|
||||
if (I.has_tool_quality(TOOL_WRENCH))
|
||||
if (do_after(user, 5 SECONDS, src))
|
||||
dismantle(user)
|
||||
return
|
||||
|
||||
@@ -55,19 +55,19 @@
|
||||
|
||||
/obj/structure/lattice/attackby(obj/item/C as obj, mob/user as mob)
|
||||
|
||||
if (istype(C, /obj/item/stack/tile/floor))
|
||||
if(istype(C, /obj/item/stack/tile/floor))
|
||||
var/turf/T = get_turf(src)
|
||||
T.attackby(C, user) //BubbleWrap - hand this off to the underlying turf instead
|
||||
return
|
||||
if (istype(C, /obj/item/weapon/weldingtool))
|
||||
var/obj/item/weapon/weldingtool/WT = C
|
||||
if(C.has_tool_quality(TOOL_WELDER))
|
||||
var/obj/item/weapon/weldingtool/WT = C.get_welder()
|
||||
if(WT.welding == 1)
|
||||
if(WT.remove_fuel(0, user))
|
||||
to_chat(user, "<span class='notice'>Slicing lattice joints ...</span>")
|
||||
new /obj/item/stack/rods(src.loc)
|
||||
qdel(src)
|
||||
return
|
||||
if (istype(C, /obj/item/stack/rods))
|
||||
if(istype(C, /obj/item/stack/rods))
|
||||
var/obj/item/stack/rods/R = C
|
||||
if(R.get_amount() < 2)
|
||||
to_chat(user, "<span class='notice'>You need at least two rods to form a catwalk here.</span>")
|
||||
|
||||
@@ -86,7 +86,7 @@
|
||||
return
|
||||
|
||||
// Dismantling the half wall
|
||||
if(W.is_wrench())
|
||||
if(W.has_tool_quality(TOOL_WRENCH))
|
||||
for(var/obj/structure/S in loc)
|
||||
if(istype(S, /obj/structure/window))
|
||||
to_chat(user, "<span class='notice'>There is still a window on the low wall!</span>")
|
||||
|
||||
@@ -295,7 +295,7 @@
|
||||
to_chat(user, "<span class='warning'>Close the valve first.</span>")
|
||||
return
|
||||
if (tank)
|
||||
if(!W.is_wrench())
|
||||
if(!W.has_tool_quality(TOOL_WRENCH))
|
||||
return
|
||||
if (!is_loosen)
|
||||
is_loosen = TRUE
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
..()
|
||||
|
||||
/obj/structure/mirror/attackby(obj/item/I as obj, mob/user as mob)
|
||||
if(I.is_wrench())
|
||||
if(I.has_tool_quality(TOOL_WRENCH))
|
||||
if(!glass)
|
||||
playsound(src, I.usesound, 50, 1)
|
||||
if(do_after(user, 20 * I.toolspeed))
|
||||
@@ -58,7 +58,7 @@
|
||||
new /obj/item/frame/mirror( src.loc )
|
||||
qdel(src)
|
||||
return
|
||||
if(I.is_wrench())
|
||||
if(I.has_tool_quality(TOOL_WRENCH))
|
||||
if(shattered && glass)
|
||||
to_chat(user, "<span class='notice'>The broken glass falls out.</span>")
|
||||
icon_state = "mirror_frame"
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
)
|
||||
|
||||
/obj/structure/plasticflaps/attackby(obj/item/P, mob/user)
|
||||
if(P.is_wirecutter())
|
||||
if(P.has_tool_quality(TOOL_WIRECUTTER))
|
||||
playsound(src, P.usesound, 50, 1)
|
||||
to_chat(user, "<span class='notice'>You start to cut the plastic flaps.</span>")
|
||||
if(do_after(user, 10 * P.toolspeed))
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/obj/structure/prop/altevian_generator_wrecked
|
||||
name = "Converted High Energy Exchange Supplier Extractor"
|
||||
desc = "A take on the classic PACMAN reactors that are seen throughout the galaxy. The altevians have ripped apart the tech and seemed to of found a way to maximize the fuel usage one would see with this kind of process. \
|
||||
However, it is a lot bulkier and nearly impossible to break apart, but still can be moved if need be with special tools. This one appears to be totally wrecked though."
|
||||
name = "Phoronic Conversion System"
|
||||
desc = "A reactor system similar to the PACMAN generators seen throughout the stars. This one is a specific model created by the altevians. It seems the designers have found a way to significantly improve fuel efficiency compared to more common portable generators. \
|
||||
However, due to its construction and size it is nearly impossible to break apart. It still can be moved if need be with special tools. This one appears to be totally wrecked though."
|
||||
icon = 'icons/obj/props/decor64x64.dmi'
|
||||
icon_state = "alteviangenwrecked"
|
||||
bound_width = 64
|
||||
@@ -33,4 +33,4 @@
|
||||
icon_state = "altevian_jump_drive_wrecked"
|
||||
desc = "A drive created by the Altevian Hegemony that focuses heavily on using Bluespace and other tactics to achieve a stable traversal between the stars. \
|
||||
This drive is commonly seen on their medium sized craft to help with logistical operations. This one appears to be totally wrecked."
|
||||
has_misc_overlay = FALSE
|
||||
has_misc_overlay = FALSE
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
//props for more fantasy type settings
|
||||
|
||||
/obj/structure/prop/fantasy
|
||||
name = "some fantasy thing"
|
||||
desc = "My description is broken, bug a developer."
|
||||
icon = 'icons/obj/props/fantasy.dmi'
|
||||
density = TRUE
|
||||
anchored = TRUE
|
||||
|
||||
/obj/structure/prop/fantasy/throne
|
||||
name = "throne"
|
||||
desc = "An ornate golden throne for the truly pompous."
|
||||
icon_state = "throne"
|
||||
|
||||
/obj/structure/prop/fantasy/anvil
|
||||
name = "anvil"
|
||||
desc = "A big solid chunk of cast steel used for smithing."
|
||||
icon_state = "anvil"
|
||||
|
||||
/obj/structure/prop/fantasy/grindstone
|
||||
name = "grindstone"
|
||||
desc = "A pedal powered, rough wheel that is used to sharpen and refine metal."
|
||||
icon_state = "grindstone"
|
||||
|
||||
/obj/structure/prop/fantasy/kiln
|
||||
name = "kiln"
|
||||
desc = "A large stone furnace."
|
||||
icon_state = "kiln"
|
||||
|
||||
/obj/structure/prop/fantasy/redbanner
|
||||
name = "tapestry"
|
||||
desc = "A red tapestry hanging from the wall."
|
||||
icon_state = "redbanner"
|
||||
density = FALSE
|
||||
|
||||
/obj/structure/prop/fantasy/pinkbanner
|
||||
name = "tapestry"
|
||||
desc = "A red tapestry hanging from the wall."
|
||||
icon_state = "pinkbanner"
|
||||
density = FALSE
|
||||
|
||||
/obj/structure/prop/fantasy/redbanner_standing
|
||||
name = "banner"
|
||||
desc = "A red banner hanging from a stand."
|
||||
icon_state = "redbanner_stand"
|
||||
density = FALSE
|
||||
|
||||
/obj/structure/prop/fantasy/pinkbanner_standing
|
||||
name = "banner"
|
||||
desc = "A red banner hanging from a stand."
|
||||
icon_state = "pinkbanner_stand"
|
||||
density = FALSE
|
||||
@@ -21,6 +21,15 @@
|
||||
/obj/structure/prop/statue/statue5
|
||||
icon_state = "artwork_statue_5"
|
||||
|
||||
//sunken ship mast
|
||||
|
||||
/obj/structure/prop/statue/sunkensail
|
||||
name = "sail mast"
|
||||
desc = "A long since collapsed mast with a sail draped over it."
|
||||
icon = 'icons/obj/props/decor64x64.dmi'
|
||||
icon_state = "sunkensail"
|
||||
density = FALSE
|
||||
|
||||
//TGMC Ship Mast
|
||||
|
||||
/obj/structure/prop/statue/stump_plaque
|
||||
|
||||
@@ -202,7 +202,7 @@
|
||||
|
||||
/obj/structure/railing/attackby(obj/item/W as obj, mob/user as mob)
|
||||
// Dismantle
|
||||
if(W.is_wrench() && !anchored)
|
||||
if(W.has_tool_quality(TOOL_WRENCH) && !anchored)
|
||||
playsound(src, W.usesound, 50, 1)
|
||||
if(do_after(user, 20, src))
|
||||
user.visible_message("<b>\The [user]</b> dismantles \the [src].", "<span class='notice'>You dismantle \the [src].</span>")
|
||||
@@ -211,8 +211,8 @@
|
||||
return
|
||||
|
||||
// Repair
|
||||
if(health < maxhealth && istype(W, /obj/item/weapon/weldingtool))
|
||||
var/obj/item/weapon/weldingtool/F = W
|
||||
if(health < maxhealth && W.has_tool_quality(TOOL_WELDER))
|
||||
var/obj/item/weapon/weldingtool/F = W.get_welder()
|
||||
if(F.welding)
|
||||
playsound(src, F.usesound, 50, 1)
|
||||
if(do_after(user, 20, src))
|
||||
@@ -221,7 +221,7 @@
|
||||
return
|
||||
|
||||
// Install
|
||||
if(W.is_screwdriver())
|
||||
if(W.has_tool_quality(TOOL_SCREWDRIVER))
|
||||
user.visible_message(anchored ? "<b>\The [user]</b> begins unscrewing \the [src]." : "<b>\The [user]</b> begins fasten \the [src]." )
|
||||
playsound(src, W.usesound, 75, 1)
|
||||
if(do_after(user, 10, src))
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
return
|
||||
|
||||
/obj/structure/salvageable/attackby(obj/item/I, mob/user)
|
||||
if(I.is_crowbar())
|
||||
if(I.has_tool_quality(TOOL_CROWBAR))
|
||||
playsound(src, I.usesound, 50, 1)
|
||||
var/actual_time = I.toolspeed * 170
|
||||
user.visible_message( \
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/sign/attackby(obj/item/tool, mob/user) //deconstruction
|
||||
if(tool.is_screwdriver() && !istype(src, /obj/structure/sign/scenery) && !istype(src, /obj/structure/sign/double))
|
||||
if(tool.has_tool_quality(TOOL_SCREWDRIVER) && !istype(src, /obj/structure/sign/scenery) && !istype(src, /obj/structure/sign/double))
|
||||
playsound(src, tool.usesound, 50, 1)
|
||||
unfasten(user)
|
||||
else ..()
|
||||
@@ -36,7 +36,7 @@
|
||||
var/original_type
|
||||
|
||||
/obj/item/sign/attackby(obj/item/tool as obj, mob/user as mob) //construction
|
||||
if(tool.is_screwdriver() && isturf(user.loc))
|
||||
if(tool.has_tool_quality(TOOL_SCREWDRIVER) && isturf(user.loc))
|
||||
var/direction = tgui_input_list(usr, "In which direction?", "Select direction.", list("North", "East", "South", "West", "Cancel"))
|
||||
if(direction == "Cancel") return
|
||||
var/target_type = original_type || /obj/structure/sign
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
/obj/structure/simple_door
|
||||
name = "door"
|
||||
description_info = "If you hold left alt whilst left-clicking on a door, you can knock on it to announce your presence to anyone on the other side! Alternately if you are on HARM intent when doing this, you will bang loudly on the door!"
|
||||
density = TRUE
|
||||
anchored = TRUE
|
||||
can_atmos_pass = ATMOS_PASS_DENSITY
|
||||
@@ -15,6 +16,10 @@
|
||||
var/knock_sound = 'sound/machines/door/knock_glass.ogg'
|
||||
var/knock_hammer_sound = 'sound/weapons/sonic_jackhammer.ogg'
|
||||
|
||||
var/locked = FALSE //has the door been locked?
|
||||
var/lock_id = null //does the door have an associated key?
|
||||
var/keysound = 'sound/items/toolbelt_equip.ogg'
|
||||
|
||||
/obj/structure/simple_door/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume)
|
||||
TemperatureAct(exposed_temperature)
|
||||
|
||||
@@ -96,6 +101,9 @@
|
||||
var/mob/M = user
|
||||
if(!material.can_open_material_door(user))
|
||||
return
|
||||
if(locked && state == 0)
|
||||
to_chat(M,"<span class='warning'>It's locked!</span>")
|
||||
return
|
||||
if(world.time - user.last_bumped <= 60)
|
||||
return
|
||||
if(M.client)
|
||||
@@ -146,13 +154,24 @@
|
||||
|
||||
/obj/structure/simple_door/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
|
||||
if(istype(W,/obj/item/weapon/pickaxe))
|
||||
if(istype(W,/obj/item/weapon/simple_key))
|
||||
var/obj/item/weapon/simple_key/key = W
|
||||
if(state)
|
||||
to_chat(user,"<span class='notice'>\The [src] must be closed in order for you to lock it.</span>")
|
||||
else if(key.key_id != src.lock_id)
|
||||
to_chat(user,"<span class='warning'>The [key] doesn't fit \the [src]'s lock!</span>")
|
||||
else if(key.key_id == src.lock_id)
|
||||
visible_message("<span class='notice'>[user] [key.keyverb] \the [key] and [locked ? "unlocks" : "locks"] \the [src].</span>")
|
||||
locked = !locked
|
||||
playsound(src, keysound,100, 1)
|
||||
return
|
||||
if(istype(W,/obj/item/weapon/pickaxe) && breakable)
|
||||
var/obj/item/weapon/pickaxe/digTool = W
|
||||
visible_message("<span class='danger'>[user] starts digging [src]!</span>")
|
||||
if(do_after(user,digTool.digspeed*hardness) && src)
|
||||
visible_message("<span class='danger'>[user] finished digging [src]!</span>")
|
||||
Dismantle()
|
||||
else if(istype(W,/obj/item/weapon)) //not sure, can't not just weapons get passed to this proc?
|
||||
else if(istype(W,/obj/item/weapon) && breakable) //not sure, can't not just weapons get passed to this proc?
|
||||
hardness -= W.force/10
|
||||
visible_message("<span class='danger'>[user] hits [src] with [W]!</span>")
|
||||
if(material == get_material_by_name("resin"))
|
||||
@@ -162,8 +181,8 @@
|
||||
else
|
||||
playsound(src, 'sound/weapons/smash.ogg', 50, 1)
|
||||
CheckHardness()
|
||||
else if(istype(W,/obj/item/weapon/weldingtool))
|
||||
var/obj/item/weapon/weldingtool/WT = W
|
||||
else if(W.has_tool_quality(TOOL_WELDER) && breakable)
|
||||
var/obj/item/weapon/weldingtool/WT = W.get_welder()
|
||||
if(material.ignition_point && WT.remove_fuel(0, user))
|
||||
TemperatureAct(150)
|
||||
else
|
||||
|
||||
@@ -88,7 +88,7 @@
|
||||
return
|
||||
|
||||
/obj/structure/bed/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if(W.is_wrench())
|
||||
if(W.has_tool_quality(TOOL_WRENCH))
|
||||
playsound(src, W.usesound, 50, 1)
|
||||
dismantle()
|
||||
qdel(src)
|
||||
@@ -119,7 +119,7 @@
|
||||
add_padding(padding_type)
|
||||
return
|
||||
|
||||
else if(W.is_wirecutter())
|
||||
else if(W.has_tool_quality(TOOL_WIRECUTTER))
|
||||
if(!padding_material)
|
||||
to_chat(user, "\The [src] has no padding to remove.")
|
||||
return
|
||||
@@ -219,7 +219,7 @@
|
||||
return
|
||||
|
||||
/obj/structure/bed/roller/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if(W.is_wrench() || istype(W,/obj/item/stack) || W.is_wirecutter())
|
||||
if(W.has_tool_quality(TOOL_WRENCH) || istype(W,/obj/item/stack) || W.has_tool_quality(TOOL_WIRECUTTER))
|
||||
return
|
||||
else if(istype(W,/obj/item/roller_holder))
|
||||
if(has_buckled_mobs())
|
||||
@@ -369,7 +369,7 @@
|
||||
buckle_lying = 1
|
||||
|
||||
/obj/structure/dirtybed/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if(W.is_wrench())
|
||||
if(W.has_tool_quality(TOOL_WRENCH))
|
||||
playsound(src, W.usesound, 100, 1)
|
||||
if(anchored)
|
||||
user.visible_message("[user] begins unsecuring \the [src] from the floor.", "You start unsecuring \the [src] from the floor.")
|
||||
@@ -384,4 +384,4 @@
|
||||
|
||||
if(!anchored)
|
||||
to_chat(user,"<span class='notice'> The bed isn't secured.</span>")
|
||||
return
|
||||
return
|
||||
|
||||
@@ -80,6 +80,20 @@
|
||||
|
||||
src.set_dir(turn(src.dir, 270))
|
||||
|
||||
/obj/structure/bed/chair/verb/rotate_counterclockwise()
|
||||
set name = "Rotate Chair Counter-Clockwise"
|
||||
set category = "Object"
|
||||
set src in oview(1)
|
||||
|
||||
if(!usr || !isturf(usr.loc))
|
||||
return
|
||||
if(usr.stat || usr.restrained())
|
||||
return
|
||||
if(ismouse(usr) || (isobserver(usr) && !config.ghost_interaction))
|
||||
return
|
||||
|
||||
src.set_dir(turn(src.dir, 90))
|
||||
|
||||
/obj/structure/bed/chair/shuttle
|
||||
name = "chair"
|
||||
icon_state = "shuttlechair"
|
||||
@@ -193,7 +207,7 @@
|
||||
return
|
||||
|
||||
/obj/structure/bed/chair/office/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if(istype(W,/obj/item/stack) || W.is_wirecutter())
|
||||
if(istype(W,/obj/item/stack) || W.has_tool_quality(TOOL_WIRECUTTER))
|
||||
return
|
||||
..()
|
||||
|
||||
@@ -259,7 +273,7 @@
|
||||
return
|
||||
|
||||
/obj/structure/bed/chair/wood/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if(istype(W,/obj/item/stack) || W.is_wirecutter())
|
||||
if(istype(W,/obj/item/stack) || W.has_tool_quality(TOOL_WIRECUTTER))
|
||||
return
|
||||
..()
|
||||
|
||||
|
||||
@@ -110,7 +110,7 @@ var/global/list/stool_cache = list() //haha stool
|
||||
qdel(src)
|
||||
|
||||
/obj/item/weapon/stool/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if(W.is_wrench())
|
||||
if(W.has_tool_quality(TOOL_WRENCH))
|
||||
playsound(src, W.usesound, 50, 1)
|
||||
dismantle()
|
||||
qdel(src)
|
||||
@@ -140,7 +140,7 @@ var/global/list/stool_cache = list() //haha stool
|
||||
to_chat(user, "You add padding to \the [src].")
|
||||
add_padding(padding_type)
|
||||
return
|
||||
else if (W.is_wirecutter())
|
||||
else if (W.has_tool_quality(TOOL_WIRECUTTER))
|
||||
if(!padding_material)
|
||||
to_chat(user, "\The [src] has no padding to remove.")
|
||||
return
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
L.set_dir(dir)
|
||||
|
||||
/obj/structure/bed/chair/wheelchair/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if(W.is_wrench() || W.is_wirecutter() || istype(W,/obj/item/stack))
|
||||
if(W.has_tool_quality(TOOL_WRENCH) || W.has_tool_quality(TOOL_WIRECUTTER) || istype(W,/obj/item/stack))
|
||||
return
|
||||
..()
|
||||
|
||||
|
||||
@@ -73,7 +73,7 @@
|
||||
phorontanks++
|
||||
else
|
||||
full = TRUE
|
||||
else if(I.is_wrench())
|
||||
else if(I.has_tool_quality(TOOL_WRENCH))
|
||||
if(anchored)
|
||||
to_chat(user, "<span class='notice'>You lean down and unwrench [src].</span>")
|
||||
anchored = FALSE
|
||||
|
||||
@@ -281,6 +281,7 @@
|
||||
prob(4);/obj/item/seeds/ambrosiavulgarisseed,
|
||||
prob(4);/obj/item/weapon/gun/energy/sizegun,
|
||||
prob(4);/obj/item/device/slow_sizegun,
|
||||
prob(4);/obj/item/clothing/accessory/collar/shock/bluespace,
|
||||
prob(3);/obj/item/weapon/material/butterfly,
|
||||
prob(3);/obj/item/weapon/material/butterfly/switchblade,
|
||||
prob(3);/obj/item/clothing/gloves/knuckledusters,
|
||||
@@ -312,7 +313,8 @@
|
||||
prob(1);/obj/item/capture_crystal,
|
||||
prob(1);/obj/item/device/perfect_tele/one_beacon,
|
||||
prob(1);/obj/item/clothing/gloves/bluespace,
|
||||
prob(1);/obj/item/weapon/gun/energy/mouseray)
|
||||
prob(1);/obj/item/weapon/gun/energy/mouseray,
|
||||
prob(1);/obj/item/clothing/accessory/collar/shock/bluespace/modified)
|
||||
|
||||
var/obj/item/I = new path()
|
||||
return I
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
icon_state = "[initial(icon_state)][open][cistern]"
|
||||
|
||||
/obj/structure/toilet/attackby(obj/item/I as obj, mob/living/user as mob)
|
||||
if(I.is_crowbar())
|
||||
if(I.has_tool_quality(TOOL_CROWBAR))
|
||||
to_chat(user, "<span class='notice'>You start to [cistern ? "replace the lid on the cistern" : "lift the lid off the cistern"].</span>")
|
||||
playsound(src, 'sound/effects/stonedoor_openclose.ogg', 50, 1)
|
||||
if(do_after(user, 30))
|
||||
@@ -124,7 +124,6 @@
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You need a tighter grip.</span>")
|
||||
|
||||
|
||||
/obj/structure/urinal
|
||||
name = "urinal"
|
||||
desc = "The HU-452, an experimental urinal."
|
||||
@@ -201,7 +200,7 @@
|
||||
/obj/machinery/shower/attackby(obj/item/I as obj, mob/user as mob)
|
||||
if(I.type == /obj/item/device/analyzer)
|
||||
to_chat(user, "<span class='notice'>The water temperature seems to be [watertemp].</span>")
|
||||
if(I.is_wrench())
|
||||
if(I.has_tool_quality(TOOL_WRENCH))
|
||||
var/newtemp = tgui_input_list(user, "What setting would you like to set the temperature valve to?", "Water Temperature Valve", temperature_settings)
|
||||
to_chat(user, "<span class='notice'>You begin to adjust the temperature valve with \the [I].</span>")
|
||||
playsound(src, I.usesound, 50, 1)
|
||||
|
||||
@@ -87,8 +87,8 @@
|
||||
|
||||
switch(state)
|
||||
if("01")
|
||||
if(istype(W, /obj/item/weapon/weldingtool) && !anchored )
|
||||
var/obj/item/weapon/weldingtool/WT = W
|
||||
if(W.has_tool_quality(TOOL_WELDER) && !anchored)
|
||||
var/obj/item/weapon/weldingtool/WT = W.get_welder()
|
||||
if (WT.remove_fuel(0,user))
|
||||
user.visible_message("[user] disassembles the windoor assembly.", "You start to disassemble the windoor assembly.")
|
||||
playsound(src, WT.usesound, 50, 1)
|
||||
@@ -106,7 +106,7 @@
|
||||
return
|
||||
|
||||
//Wrenching an unsecure assembly anchors it in place. Step 4 complete
|
||||
if(W.is_wrench() && !anchored)
|
||||
if(W.has_tool_quality(TOOL_WRENCH) && !anchored)
|
||||
playsound(src, W.usesound, 100, 1)
|
||||
user.visible_message("[user] secures the windoor assembly to the floor.", "You start to secure the windoor assembly to the floor.")
|
||||
|
||||
@@ -117,7 +117,7 @@
|
||||
step = 0
|
||||
|
||||
//Unwrenching an unsecure assembly un-anchors it. Step 4 undone
|
||||
else if(W.is_wrench() && anchored)
|
||||
else if(W.has_tool_quality(TOOL_WRENCH) && anchored)
|
||||
playsound(src, W.usesound, 100, 1)
|
||||
user.visible_message("[user] unsecures the windoor assembly to the floor.", "You start to unsecure the windoor assembly to the floor.")
|
||||
|
||||
@@ -143,7 +143,7 @@
|
||||
if("02")
|
||||
|
||||
//Removing wire from the assembly. Step 5 undone.
|
||||
if(W.is_wirecutter() && !src.electronics)
|
||||
if(W.has_tool_quality(TOOL_WIRECUTTER) && !src.electronics)
|
||||
playsound(src, W.usesound, 100, 1)
|
||||
user.visible_message("[user] cuts the wires from the airlock assembly.", "You start to cut the wires from airlock assembly.")
|
||||
|
||||
@@ -172,7 +172,7 @@
|
||||
W.loc = src.loc
|
||||
|
||||
//Screwdriver to remove airlock electronics. Step 6 undone.
|
||||
else if(W.is_screwdriver() && src.electronics)
|
||||
else if(W.has_tool_quality(TOOL_SCREWDRIVER) && src.electronics)
|
||||
playsound(src, W.usesound, 100, 1)
|
||||
user.visible_message("[user] removes the electronics from the airlock assembly.", "You start to uninstall electronics from the airlock assembly.")
|
||||
|
||||
@@ -185,7 +185,7 @@
|
||||
ae.loc = src.loc
|
||||
|
||||
//Crowbar to complete the assembly, Step 7 complete.
|
||||
else if(W.is_crowbar())
|
||||
else if(W.has_tool_quality(TOOL_CROWBAR))
|
||||
if(!src.electronics)
|
||||
to_chat(usr,"<span class='warning'>The assembly is missing electronics.</span>")
|
||||
return
|
||||
|
||||
@@ -223,8 +223,8 @@
|
||||
if(!istype(W)) return//I really wish I did not need this
|
||||
|
||||
// Fixing.
|
||||
if(istype(W, /obj/item/weapon/weldingtool) && user.a_intent == I_HELP)
|
||||
var/obj/item/weapon/weldingtool/WT = W
|
||||
if(W.has_tool_quality(TOOL_WELDER) && user.a_intent == I_HELP)
|
||||
var/obj/item/weapon/weldingtool/WT = W.get_welder()
|
||||
if(health < maxhealth)
|
||||
if(WT.remove_fuel(1 ,user))
|
||||
to_chat(user, "<span class='notice'>You begin repairing [src]...</span>")
|
||||
@@ -265,7 +265,7 @@
|
||||
|
||||
if(W.flags & NOBLUDGEON) return
|
||||
|
||||
if(W.is_screwdriver())
|
||||
if(W.has_tool_quality(TOOL_SCREWDRIVER))
|
||||
if(reinf && state >= 1)
|
||||
state = 3 - state
|
||||
update_nearby_icons()
|
||||
@@ -285,11 +285,11 @@
|
||||
update_verbs()
|
||||
playsound(src, W.usesound, 75, 1)
|
||||
to_chat(user, "<span class='notice'>You have [anchored ? "" : "un"]fastened the window [anchored ? "to" : "from"] the floor.</span>")
|
||||
else if(W.is_crowbar() && reinf && state <= 1)
|
||||
else if(W.has_tool_quality(TOOL_CROWBAR) && reinf && state <= 1)
|
||||
state = 1 - state
|
||||
playsound(src, W.usesound, 75, 1)
|
||||
to_chat(user, "<span class='notice'>You have pried the window [state ? "into" : "out of"] the frame.</span>")
|
||||
else if(W.is_wrench() && !anchored && (!state || !reinf))
|
||||
else if(W.has_tool_quality(TOOL_WRENCH) && !anchored && (!state || !reinf))
|
||||
if(!glasstype)
|
||||
to_chat(user, "<span class='notice'>You're not sure how to dismantle \the [src] properly.</span>")
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user