Merge branch 'master' of https://github.com/PolarisSS13/Polaris into electric_welder

# Conflicts:
#	icons/mob/items/lefthand.dmi
#	icons/mob/items/righthand.dmi
This commit is contained in:
Anewbe
2017-03-28 00:17:28 -05:00
47 changed files with 3568 additions and 3419 deletions
+4 -1
View File
@@ -7,4 +7,7 @@
#define TURF_HAS_EDGES 64
#define TURF_HAS_CORNERS 128
#define TURF_IS_FRAGILE 256
#define TURF_ACID_IMMUNE 512
#define TURF_ACID_IMMUNE 512
#define isCardinal(x) (x == NORTH || x == SOUTH || x == EAST || x == WEST)
#define isDiagonal(x) (x == NORTHEAST || x == SOUTHEAST || x == NORTHWEST || x == SOUTHWEST)
+41 -57
View File
@@ -753,9 +753,6 @@ proc/GaussRandRound(var/sigma,var/roundto)
C.x_pos = (T.x - trg_min_x)
C.y_pos = (T.y - trg_min_y)
var/list/fromupdate = new/list()
var/list/toupdate = new/list()
moving:
for (var/turf/T in refined_src)
var/datum/coords/C_src = refined_src[T]
@@ -763,19 +760,40 @@ proc/GaussRandRound(var/sigma,var/roundto)
var/datum/coords/C_trg = refined_trg[B]
if(C_src.x_pos == C_trg.x_pos && C_src.y_pos == C_trg.y_pos)
var/old_dir1 = T.dir
var/old_icon_state1 = T.icon_state
var/old_icon1 = T.icon
var/old_overlays = T.overlays.Copy()
var/old_underlays = T.underlays.Copy()
//You can stay, though.
if(istype(T,/turf/space))
refined_src -= T
refined_trg -= B
continue moving
var/turf/X = B.ChangeTurf(T.type)
X.set_dir(old_dir1)
X.icon_state = old_icon_state1
X.icon = old_icon1 //Shuttle floors are in shuttle.dmi while the defaults are floors.dmi
X.overlays = old_overlays
X.underlays = old_underlays
var/turf/X //New Destination Turf
//Are we doing shuttlework? Just to save another type check later.
var/shuttlework = 0
//Shuttle turfs handle their own fancy moving.
if(istype(T,/turf/simulated/shuttle))
shuttlework = 1
var/turf/simulated/shuttle/SS = T
if(!SS.landed_holder) SS.landed_holder = new(turf = SS)
X = SS.landed_holder.land_on(B)
//Generic non-shuttle turf move.
else
var/old_dir1 = T.dir
var/old_icon_state1 = T.icon_state
var/old_icon1 = T.icon
var/old_overlays = T.overlays.Copy()
var/old_underlays = T.underlays.Copy()
X = B.ChangeTurf(T.type)
X.set_dir(old_dir1)
X.icon_state = old_icon_state1
X.icon = old_icon1
X.overlays = old_overlays
X.underlays = old_underlays
//Move the air from source to dest
var/turf/simulated/ST = T
if(istype(ST) && ST.zone)
var/turf/simulated/SX = X
@@ -784,55 +802,22 @@ proc/GaussRandRound(var/sigma,var/roundto)
SX.air.copy_from(ST.zone.air)
ST.zone.remove(ST)
/* Quick visual fix for some weird shuttle corner artefacts when on transit space tiles */
if(direction && findtext(X.icon_state, "swall_s"))
// Spawn a new shuttle corner object
var/obj/corner = new()
corner.loc = X
corner.density = 1
corner.anchored = 1
corner.icon = X.icon
corner.icon_state = replacetext(X.icon_state, "_s", "_f")
corner.tag = "delete me"
corner.name = "wall"
// Find a new turf to take on the property of
var/turf/nextturf = get_step(corner, direction)
if(!nextturf || !istype(nextturf, /turf/space))
nextturf = get_step(corner, turn(direction, 180))
// Take on the icon of a neighboring scrolling space icon
X.icon = nextturf.icon
X.icon_state = nextturf.icon_state
//Move the objects. Not forceMove because the object isn't "moving" really, it's supposed to be on the "same" turf.
for(var/obj/O in T)
// Reset the shuttle corners
if(O.tag == "delete me")
X.icon = 'icons/turf/shuttle.dmi'
X.icon_state = replacetext(O.icon_state, "_f", "_s") // revert the turf to the old icon_state
X.name = "wall"
qdel(O) // prevents multiple shuttle corners from stacking
continue
if(!istype(O,/obj)) continue
O.loc = X
//Move the mobs unless it's an AI eye or other eye type.
for(var/mob/M in T)
if(!istype(M,/mob) || istype(M, /mob/observer/eye)) continue // If we need to check for more mobs, I'll add a variable
if(istype(M, /mob/observer/eye)) continue // If we need to check for more mobs, I'll add a variable
M.loc = X
// var/area/AR = X.loc
if(shuttlework)
var/turf/simulated/shuttle/SS = T
SS.landed_holder.leave_turf()
// if(AR.lighting_use_dynamic) //TODO: rewrite this code so it's not messed by lighting ~Carn
// X.opacity = !X.opacity
// X.SetOpacity(!X.opacity)
else if(turftoleave)
T.ChangeTurf(turftoleave)
toupdate += X
if(turftoleave)
fromupdate += T.ChangeTurf(turftoleave)
else
T.ChangeTurf(get_base_turf_by_area(T))
@@ -840,7 +825,6 @@ proc/GaussRandRound(var/sigma,var/roundto)
refined_trg -= B
continue moving
proc/DuplicateObject(obj/original, var/perfectcopy = 0 , var/sameloc = 0)
if(!original)
return null
+2 -2
View File
@@ -13,12 +13,12 @@
if(src.locked) return
..()
return
/obj/machinery/door/unpowered/emag_act()
return -1
/obj/machinery/door/unpowered/shuttle
icon = 'icons/turf/shuttle.dmi'
icon = 'icons/turf/shuttle_white.dmi'
name = "door"
icon_state = "door1"
opacity = 1
@@ -68,3 +68,40 @@
qdel(src)
user.put_in_hands(finished)
update_icon(user)
/obj/item/woodcirclet
name = "wood circlet"
desc = "A small wood circlet for making a flower crown."
icon = 'icons/obj/buildingobject.dmi'
icon_state = "woodcirclet"
w_class = ITEMSIZE_SMALL
/obj/item/woodcirclet/attackby(obj/item/W as obj, mob/user as mob)
var/obj/item/complete
if(istype(W,/obj/item/seeds/poppyseed))
user << "You attach the poppy to the circlet and create a beautiful flower crown."
complete = new /obj/item/clothing/head/poppy_crown(get_turf(user))
user.drop_from_inventory(W)
user.drop_from_inventory(src)
qdel(W)
qdel(src)
user.put_in_hands(complete)
return
else if(istype(W,/obj/item/seeds/sunflowerseed))
user << "You attach the sunflower to the circlet and create a beautiful flower crown."
complete = new /obj/item/clothing/head/sunflower_crown(get_turf(user))
user.drop_from_inventory(W)
user.drop_from_inventory(src)
qdel(W)
qdel(src)
user.put_in_hands(complete)
return
else if(istype(W,/obj/item/seeds/lavenderseed))
user << "You attach the lavender to the circlet and create a beautiful flower crown."
complete = new /obj/item/clothing/head/lavender_crown(get_turf(user))
user.drop_from_inventory(W)
user.drop_from_inventory(src)
qdel(W)
qdel(src)
user.put_in_hands(complete)
return
+35 -5
View File
@@ -1,18 +1,48 @@
/obj/structure/shuttle
name = "shuttle"
icon = 'icons/turf/shuttle.dmi'
icon = 'icons/turf/shuttle_parts.dmi'
/obj/structure/shuttle/window
name = "shuttle window"
icon = 'icons/obj/podwindows.dmi'
icon_state = "1"
icon_state = "0_0" //The states are a bitflag for connecting window directions, then connecting shuttle wall directions
density = 1
opacity = 0
anchored = 1
CanPass(atom/movable/mover, turf/target, height, air_group)
if(!height || air_group) return 0
else return ..()
var/window_flags = 0 // Bitflags to indicate connected windows
var/wall_flags = 0 // Bitflags to indicate connected walls
/obj/structure/shuttle/window/CanPass(atom/movable/mover, turf/target, height, air_group)
if(!height || air_group) return 0
else return ..()
/obj/structure/shuttle/window/initialize()
..()
auto_join()
/obj/structure/shuttle/window/proc/auto_join()
match_windows(NORTH, NORTH)
match_windows(EAST, EAST)
match_windows(SOUTH, SOUTH)
match_windows(WEST, WEST)
icon_state = "[window_flags]_[wall_flags]"
return icon_state
/obj/structure/shuttle/window/proc/match_windows(direction, flag, mask=0)
var/turf/adj = get_step(src, direction)
if(istype(adj,/turf/simulated/shuttle/wall))
wall_flags |= flag // turn on the bit flag
else
var/obj/structure/shuttle/window/window = locate(src.type) in adj
if(window)
window_flags |= flag // turn on the bit flag
else
window_flags &= ~flag // turn off the bit flag
wall_flags &= ~flag // turn off the bit flag
/obj/structure/shuttle/engine
name = "engine"
+179 -42
View File
@@ -5,79 +5,216 @@
/turf/simulated/floor/diona/attackby()
return
//Shuttle Floors
/obj/landed_holder
name = "landed turf holder"
desc = "holds all the info about the turf this turf 'landed on'"
var/turf/turf_type
var/turf/simulated/shuttle/my_turf
var/image/turf_image
New(var/location = null, var/turf/simulated/shuttle/turf)
my_turf = turf
/obj/landed_holder/proc/land_on(var/turf/T)
//Gather destination information
var/old_dest_type = T.type
var/old_dest_dir = T.dir
var/old_dest_icon_state = T.icon_state
var/old_dest_icon = T.icon
var/list/old_dest_overlays = T.overlays.Copy()
var/list/old_dest_underlays = T.underlays.Copy()
//Set the destination to be like us
T.Destroy()
var/turf/simulated/shuttle/new_dest = T.ChangeTurf(my_turf.type,force_lighting_update = 1)
new_dest.set_dir(my_turf.dir)
new_dest.icon_state = my_turf.icon_state
new_dest.icon = my_turf.icon
new_dest.overlays = my_turf.overlays
new_dest.underlays = my_turf.underlays
//Shuttle specific stuff
new_dest.interior_corner = my_turf.interior_corner
new_dest.takes_underlays = my_turf.takes_underlays
new_dest.under_turf = my_turf.under_turf
new_dest.join_flags = my_turf.join_flags
new_dest.join_group = my_turf.join_group
//Tell the new turf about what was there before
new_dest.landed_holder = new(turf = new_dest)
new_dest.landed_holder.turf_type = old_dest_type
new_dest.landed_holder.dir = old_dest_dir
new_dest.landed_holder.icon = old_dest_icon
new_dest.landed_holder.icon_state = old_dest_icon_state
new_dest.landed_holder.overlays = old_dest_overlays
new_dest.landed_holder.underlays = old_dest_underlays
//Update underlays if necessary (interior corners won't have changed).
if(new_dest.takes_underlays && !new_dest.interior_corner)
new_dest.underlay_update()
return new_dest
/obj/landed_holder/proc/leave_turf()
var/turf/new_source
//Change our source to whatever it was before
if(turf_type)
new_source = my_turf.ChangeTurf(turf_type,,1)
new_source.set_dir(dir)
new_source.icon_state = icon_state
new_source.icon = icon
new_source.overlays = overlays
new_source.underlays = underlays
else
new_source = my_turf.ChangeTurf(get_base_turf_by_area(my_turf),,1)
return new_source
/turf/simulated/shuttle
name = "shuttle"
icon = 'icons/turf/shuttle.dmi'
icon = 'icons/turf/shuttle_white.dmi'
thermal_conductivity = 0.05
heat_capacity = 0
layer = 2
/turf/simulated/shuttle/wall
name = "wall"
icon_state = "wall1"
opacity = 1
density = 1
blocks_air = 1
var/obj/landed_holder/landed_holder
var/interior_corner = 0
var/takes_underlays = 0
var/turf/under_turf //Underlay override turf path.
var/join_flags = 0 //Bitstring to represent adjacency of joining walls
var/join_group = "shuttle" //A tag for what other walls to join with. Null if you don't want them to.
/turf/simulated/shuttle/wall/voidcraft
name = "voidcraft wall"
icon = 'icons/turf/voidcraft_walls.dmi'
icon_state = "voidcraft_wall_alone"
var/stripe_color = null // If set, generates a colored stripe overlay. Accepts #XXXXXX as input.
/turf/simulated/shuttle/wall/voidcraft/red
stripe_color = "#FF0000"
/turf/simulated/shuttle/wall/voidcraft/blue
stripe_color = "#0000FF"
/turf/simulated/shuttle/wall/voidcraft/green
stripe_color = "#00FF00"
/turf/simulated/shuttle/wall/voidcraft/New()
/turf/simulated/shuttle/Destroy()
landed_holder = null
..()
update_icon()
/turf/simulated/shuttle/wall/voidcraft/update_icon()
var/list/icon_states = icon_states(src.icon)
if(("[icon_state]_stripe" in icon_states) && stripe_color)
overlays.Cut()
var/image/I = image(icon = src.icon, dir = src.dir, icon_state = "[icon_state]_stripe")
if(stripe_color)
I.color = stripe_color
overlays.Add(I)
/turf/simulated/shuttle/proc/underlay_update()
if(!takes_underlays)
//Basically, if it's not forced, and we don't care, don't do it.
return 0
var/turf/under //May be a path or a turf
//Mapper wanted something specific
if(under_turf)
under = under_turf
//Well if this isn't our first rodeo, we know EXACTLY what we landed on, and it looks like this.
if(landed_holder && !interior_corner)
underlays.Cut()
underlays += image(landed_holder,layer=FLOAT_LAYER)
return
if(!under)
var/turf/T1
var/turf/T2
var/turf/T3
T1 = get_step(src, turn(join_flags,135)) // 45 degrees before opposite
T2 = get_step(src, turn(join_flags,225)) // 45 degrees beyond opposite
T3 = get_step(src, turn(join_flags,180)) // Opposite from the diagonal
if(isfloor(T1) && ((T1.type == T2.type) || (T1.type == T3.type)))
under = T1
else if(isfloor(T2) && T2.type == T3.type)
under = T2
else if(isfloor(T3) || istype(T3,/turf/space/transit))
under = T3
else
under = get_base_turf_by_area(src)
var/use_icon = ispath(under) ? initial(under.icon) : under.icon
var/use_icon_state
if(istype(under,/turf/simulated/shuttle))
interior_corner = 1 //Prevents us from 'landing on grass' and having interior corners update.
if(ispath(under,/turf/space))
use_icon_state = "[rand(1,25)]" //Space turfs should be random.
else
use_icon_state = ispath(under) ? initial(under.icon_state) : under.icon_state
var/image/under_image = new(use_icon,icon_state = use_icon_state)
underlays.Cut()
underlays |= under_image
return under
/turf/simulated/shuttle/floor
name = "floor"
icon_state = "floor"
icon = 'icons/turf/flooring/shuttle.dmi'
icon_state = "floor_blue"
/turf/simulated/shuttle/floor/red
icon_state = "floor_red"
/turf/simulated/shuttle/floor/yellow
icon_state = "floor_yellow"
/turf/simulated/shuttle/floor/darkred
icon_state = "floor_dred"
/turf/simulated/shuttle/floor/purple
icon_state = "floor_purple"
/turf/simulated/shuttle/floor/white
icon_state = "floor_white"
/turf/simulated/shuttle/floor/black
icon_state = "floor_black"
/turf/simulated/shuttle/floor/glass
icon_state = "floor_glass"
takes_underlays = 1
/turf/simulated/shuttle/plating
name = "plating"
icon = 'icons/turf/floors.dmi'
icon_state = "plating"
/turf/simulated/shuttle/plating/airless
oxygen = 0
nitrogen = 0
//For 'carrying' otherwise empty turfs or stuff in space turfs with you or having holes in the floor or whatever.
/turf/simulated/shuttle/plating/carry
name = "carry turf"
icon = 'icons/turf/shuttle_parts.dmi'
icon_state = "carry"
takes_underlays = 1
blocks_air = 1 //I'd make these unsimulated but it just fucks with so much stuff so many other places.
initialize()
icon_state = "carry_ingame"
/turf/simulated/shuttle/plating/airless/carry
name = "airless carry turf"
icon = 'icons/turf/shuttle_parts.dmi'
icon_state = "carry"
takes_underlays = 1
blocks_air = 1
initialize()
icon_state = "carry_ingame"
/turf/simulated/shuttle/plating/skipjack //Skipjack plating
oxygen = 0
nitrogen = MOLES_N2STANDARD + MOLES_O2STANDARD
/turf/simulated/shuttle/floor4 // Added this floor tile so that I have a seperate turf to check in the shuttle -- Polymorph
name = "Brig floor" // Also added it into the 2x3 brig area of the shuttle.
icon_state = "floor4"
/turf/simulated/shuttle/floor4/skipjack //skipjack floors
/turf/simulated/shuttle/floor/skipjack //Skipjack floors
name = "skipjack floor"
icon_state = "floor_dred"
oxygen = 0
nitrogen = MOLES_N2STANDARD + MOLES_O2STANDARD
/turf/simulated/shuttle/floor/voidcraft
name = "voidcraft tiles"
icon_state = "voidcraft_floor"
icon_state = "void"
/turf/simulated/shuttle/floor/voidcraft/dark
name = "voidcraft tiles"
icon_state = "voidcraft_floor_dark"
icon_state = "void_dark"
/turf/simulated/shuttle/floor/voidcraft/light
name = "voidcraft tiles"
icon_state = "voidcraft_floor_light"
icon_state = "void_light"
+146 -1
View File
@@ -51,4 +51,149 @@
..(newloc,"wood")
/turf/simulated/wall/sifwood/New(var/newloc)
..(newloc,"alien wood")
..(newloc,"alien wood")
// Shuttle Walls
/turf/simulated/shuttle/wall
name = "autojoin wall"
icon_state = "light"
opacity = 1
density = 1
blocks_air = 1
var/base_state = "light" //The base iconstate to base sprites on
var/hard_corner = 0 //Forces hard corners (as opposed to diagonals)
var/true_name = "wall" //What to rename this to on init
//Extra things this will try to locate and act like we're joining to. You can put doors, or whatever.
//Carefully means only if it's on a /turf/simulated/shuttle subtype turf.
var/static/list/join_carefully = list(
/obj/structure/grille,
/obj/machinery/door/blast/regular
)
var/static/list/join_always = list(
/obj/structure/shuttle/engine,
/obj/structure/shuttle/window,
/obj/machinery/door/airlock/voidcraft
)
/turf/simulated/shuttle/wall/hard_corner
name = "hardcorner wall"
icon_state = "light-hc"
hard_corner = 1
/turf/simulated/shuttle/wall/no_join
icon_state = "light-nj"
join_group = null
/turf/simulated/shuttle/wall/dark
icon = 'icons/turf/shuttle_dark.dmi'
icon_state = "dark"
base_state = "dark"
/turf/simulated/shuttle/wall/dark/hard_corner
name = "hardcorner wall"
icon_state = "dark-hc"
hard_corner = 1
/turf/simulated/shuttle/wall/dark/no_join
name = "nojoin wall"
icon_state = "dark-nj"
join_group = null
/turf/simulated/shuttle/wall/New()
..()
//To allow mappers to rename shuttle walls to like "redfloor interior" or whatever for ease of use.
name = true_name
/turf/simulated/shuttle/wall/initialize()
..()
if(join_group)
src.auto_join()
else
icon_state = base_state
if(takes_underlays)
underlay_update()
/turf/simulated/shuttle/wall/proc/auto_join()
match_turf(NORTH, NORTH)
match_turf(EAST, EAST)
match_turf(SOUTH, SOUTH)
match_turf(WEST, WEST)
icon_state = "[base_state][join_flags]"
if(isDiagonal(join_flags))
if(hard_corner) //You are using 'hard' (aka full-tile) corners.
icon_state += "h" //Hard corners have 'h' at the end of the state
else //Diagonals need an underlay to not look ugly.
takes_underlays = 1
else //Everything else doesn't deserve our time!
takes_underlays = initial(takes_underlays)
return join_flags
/turf/simulated/shuttle/wall/proc/match_turf(direction, flag, mask=0)
if((join_flags & mask) == mask)
var/turf/simulated/shuttle/wall/adj = get_step(src, direction)
if(istype(adj, /turf/simulated/shuttle/wall) && adj.join_group == src.join_group)
join_flags |= flag // turn on the bit flag
return
else if(istype(adj, /turf/simulated/shuttle))
var/turf/simulated/shuttle/adj_cast = adj
if(adj_cast.join_group == src.join_group)
var/found
for(var/E in join_carefully)
found = locate(E) in adj
if(found) break
if(found)
join_flags |= flag // turn on the bit flag
return
var/always_found
for(var/E in join_always)
always_found = locate(E) in adj
if(always_found) break
if(always_found)
join_flags |= flag // turn on the bit flag
else
join_flags &= ~flag // turn off the bit flag
/turf/simulated/shuttle/wall/voidcraft
name = "voidcraft wall"
icon = 'icons/turf/shuttle_void.dmi'
icon_state = "void"
base_state = "void"
var/stripe_color = null // If set, generates a colored stripe overlay. Accepts #XXXXXX as input.
/turf/simulated/shuttle/wall/voidcraft/hard_corner
name = "hardcorner wall"
icon_state = "void-hc"
hard_corner = 1
/turf/simulated/shuttle/wall/voidcraft/no_join
name = "nojoin wall"
icon_state = "void-nj"
join_group = null
/turf/simulated/shuttle/wall/voidcraft/red
stripe_color = "#FF0000"
/turf/simulated/shuttle/wall/voidcraft/blue
stripe_color = "#0000FF"
/turf/simulated/shuttle/wall/voidcraft/green
stripe_color = "#00FF00"
/turf/simulated/shuttle/wall/voidcraft/initialize()
..()
update_icon()
/turf/simulated/shuttle/wall/voidcraft/update_icon()
if(stripe_color)
overlays.Cut()
var/image/I = image(icon = src.icon, icon_state = "o_[icon_state]")
I.color = stripe_color
overlays.Add(I)
+27
View File
@@ -0,0 +1,27 @@
/turf/unsimulated/shuttle
name = "shuttle"
icon = 'icons/turf/shuttle_white.dmi'
thermal_conductivity = 0.05
heat_capacity = 0
layer = 2
/turf/unsimulated/shuttle/wall
name = "wall"
icon_state = "light"
opacity = 1
density = 1
blocks_air = 1
/turf/unsimulated/shuttle/wall/dark
icon = 'icons/turf/shuttle_dark.dmi'
icon_state = "dark"
/turf/unsimulated/shuttle/floor
name = "floor"
icon = 'icons/turf/flooring/shuttle.dmi'
icon_state = "floor_blue"
/turf/unsimulated/shuttle/plating
name = "plating"
icon = 'icons/turf/floors.dmi'
icon_state = "plating"
+21
View File
@@ -347,3 +347,24 @@
desc = "A wide-brimmed hat popularly worn in Mexico."
icon_state = "sombrero"
body_parts_covered = 0
//Flower crowns
/obj/item/clothing/head/sunflower_crown
name = "sunflower crown"
desc = "A flower crown weaved with sunflowers."
icon_state = "sunflower_crown"
body_parts_covered = 0
/obj/item/clothing/head/lavender_crown
name = "lavender crown"
desc = "A flower crown weaved with lavender."
icon_state = "lavender_crown"
body_parts_covered = 0
/obj/item/clothing/head/poppy_crown
name = "poppy crown"
desc = "A flower crown weaved with poppies."
icon_state = "poppy_crown"
body_parts_covered = 0
+5 -15
View File
@@ -174,20 +174,16 @@
/obj/item/clothing/suit/storage/toggle/lawyer/bluejacket
name = "blue suit jacket"
desc = "A snappy dress jacket."
icon_state = "suitjacket_blue_open"
icon_state = "suitjacket_blue"
item_state_slots = list(slot_r_hand_str = "suit_blue", slot_l_hand_str = "suit_blue")
icon_open = "suitjacket_blue_open"
icon_closed = "suitjacket_blue"
blood_overlay_type = "coat"
body_parts_covered = UPPER_TORSO|ARMS
/obj/item/clothing/suit/storage/toggle/lawyer/purpjacket
name = "purple suit jacket"
desc = "A snappy dress jacket."
icon_state = "suitjacket_purp_open"
icon_state = "suitjacket_purp"
item_state_slots = list(slot_r_hand_str = "suit_purple", slot_l_hand_str = "suit_purple")
icon_open = "suitjacket_purp_open"
icon_closed = "suitjacket_purp"
blood_overlay_type = "coat"
body_parts_covered = UPPER_TORSO|ARMS
@@ -195,10 +191,8 @@
/obj/item/clothing/suit/storage/toggle/internalaffairs
name = "black suit jacket"
desc = "A smooth black jacket."
icon_state = "ia_jacket_open"
icon_state = "ia_jacket"
item_state_slots = list(slot_r_hand_str = "suit_black", slot_l_hand_str = "suit_black")
icon_open = "ia_jacket_open"
icon_closed = "ia_jacket"
blood_overlay_type = "coat"
body_parts_covered = UPPER_TORSO|ARMS
@@ -206,10 +200,8 @@
/obj/item/clothing/suit/storage/toggle/fr_jacket
name = "first responder jacket"
desc = "A high-visibility jacket worn by medical first responders."
icon_state = "fr_jacket_open"
icon_state = "fr_jacket"
item_state_slots = list(slot_r_hand_str = "fr_jacket", slot_l_hand_str = "fr_jacket")
icon_open = "fr_jacket_open"
icon_closed = "fr_jacket"
blood_overlay_type = "armor"
allowed = list(/obj/item/stack/medical, /obj/item/weapon/reagent_containers/dropper, /obj/item/weapon/reagent_containers/hypospray, /obj/item/weapon/reagent_containers/syringe,
/obj/item/device/healthanalyzer, /obj/item/device/flashlight, /obj/item/device/radio, /obj/item/weapon/tank/emergency/oxygen)
@@ -218,10 +210,8 @@
/obj/item/clothing/suit/storage/toggle/fr_jacket/ems
name = "\improper EMS jacket"
desc = "A dark blue, martian-pattern, EMS jacket. It sports high-visibility reflective stripes and a star of life on the back."
icon_state = "ems_jacket_closed"
icon_state = "ems_jacket"
item_state_slots = list(slot_r_hand_str = "ems_jacket", slot_l_hand_str = "ems_jacket")
icon_open = "ems_jacket_open"
icon_closed = "ems_jacket_closed"
/obj/item/clothing/suit/surgicalapron
name = "surgical apron"
+16 -48
View File
@@ -1,10 +1,8 @@
/obj/item/clothing/suit/storage/toggle/labcoat
name = "labcoat"
desc = "A suit that protects against minor chemical spills."
icon_state = "labcoat_open"
icon_state = "labcoat"
item_state_slots = list(slot_r_hand_str = "labcoat", slot_l_hand_str = "labcoat")
icon_open = "labcoat_open"
icon_closed = "labcoat"
blood_overlay_type = "coat"
body_parts_covered = UPPER_TORSO|ARMS
flags_inv = HIDEHOLSTER
@@ -14,120 +12,90 @@
/obj/item/clothing/suit/storage/toggle/labcoat/red
name = "red labcoat"
desc = "A suit that protects against minor chemical spills. This one is red."
icon_state = "red_labcoat_open"
icon_open = "red_labcoat_open"
icon_closed = "red_labcoat"
icon_state = "red_labcoat"
item_state_slots = list(slot_r_hand_str = "red_labcoat", slot_l_hand_str = "red_labcoat")
/obj/item/clothing/suit/storage/toggle/labcoat/blue
name = "blue labcoat"
desc = "A suit that protects against minor chemical spills. This one is blue."
icon_state = "blue_labcoat_open"
icon_open = "blue_labcoat_open"
icon_closed = "blue_labcoat"
icon_state = "blue_labcoat"
item_state_slots = list(slot_r_hand_str = "blue_labcoat", slot_l_hand_str = "blue_labcoat")
/obj/item/clothing/suit/storage/toggle/labcoat/purple
name = "purple labcoat"
desc = "A suit that protects against minor chemical spills. This one is purple."
icon_state = "purple_labcoat_open"
icon_open = "purple_labcoat_open"
icon_closed = "purple_labcoat"
icon_state = "purple_labcoat"
item_state_slots = list(slot_r_hand_str = "purple_labcoat", slot_l_hand_str = "purple_labcoat")
/obj/item/clothing/suit/storage/toggle/labcoat/orange
name = "orange labcoat"
desc = "A suit that protects against minor chemical spills. This one is orange."
icon_state = "orange_labcoat_open"
icon_open = "orange_labcoat_open"
icon_closed = "orange_labcoat"
icon_state = "orange_labcoat"
item_state_slots = list(slot_r_hand_str = "orange_labcoat", slot_l_hand_str = "orange_labcoat")
/obj/item/clothing/suit/storage/toggle/labcoat/green
name = "green labcoat"
desc = "A suit that protects against minor chemical spills. This one is green."
icon_state = "green_labcoat_open"
icon_open = "green_labcoat_open"
icon_closed = "green_labcoat"
icon_state = "green_labcoat"
item_state_slots = list(slot_r_hand_str = "green_labcoat", slot_l_hand_str = "green_labcoat")
/obj/item/clothing/suit/storage/toggle/labcoat/yellow
name = "yellow labcoat"
desc = "A suit that protects against minor chemical spills. This one is yellow."
icon_state = "yellow_labcoat_open"
icon_open = "yellow_labcoat_open"
icon_closed = "yellow_labcoat"
icon_state = "yellow_labcoat"
item_state_slots = list(slot_r_hand_str = "yellow_labcoat", slot_l_hand_str = "yellow_labcoat")
/obj/item/clothing/suit/storage/toggle/labcoat/pink
name = "pink labcoat"
desc = "A suit that protects against minor chemical spills. This one is pink."
icon_state = "pink_labcoat_open"
icon_open = "pink_labcoat_open"
icon_closed = "pink_labcoat"
icon_state = "pink_labcoat"
item_state_slots = list(slot_r_hand_str = "pink_labcoat", slot_l_hand_str = "pink_labcoat")
/obj/item/clothing/suit/storage/toggle/labcoat/cmo
name = "chief medical officer's labcoat"
desc = "Bluer than the standard model."
icon_state = "labcoat_cmo_open"
icon_open = "labcoat_cmo_open"
icon_closed = "labcoat_cmo"
icon_state = "labcoat_cmo"
item_state_slots = list(slot_r_hand_str = "cmo_labcoat", slot_l_hand_str = "cmo_labcoat")
/obj/item/clothing/suit/storage/toggle/labcoat/cmoalt
name = "chief medical officer labcoat"
desc = "A labcoat with command blue highlights."
icon_state = "labcoat_cmoalt_open"
icon_open = "labcoat_cmoalt_open"
icon_closed = "labcoat_cmoalt"
icon_state = "labcoat_cmoalt"
item_state_slots = list(slot_r_hand_str = "cmo_labcoat", slot_l_hand_str = "cmo_labcoat")
/obj/item/clothing/suit/storage/toggle/labcoat/mad
name = "The Mad's labcoat"
desc = "It makes you look capable of konking someone on the noggin and shooting them into space."
icon_state = "labgreen_open"
icon_open = "labgreen_open"
icon_closed = "labgreen"
icon_state = "labgreen"
item_state_slots = list(slot_r_hand_str = "green_labcoat", slot_l_hand_str = "green_labcoat")
/obj/item/clothing/suit/storage/toggle/labcoat/genetics
name = "Geneticist labcoat"
desc = "A suit that protects against minor chemical spills. Has a blue stripe on the shoulder."
icon_state = "labcoat_gen_open"
icon_open = "labcoat_gen_open"
icon_closed = "labcoat_gen"
icon_state = "labcoat_gen"
item_state_slots = list(slot_r_hand_str = "genetics_labcoat", slot_l_hand_str = "genetics_labcoat")
/obj/item/clothing/suit/storage/toggle/labcoat/chemist
name = "Chemist labcoat"
desc = "A suit that protects against minor chemical spills. Has an orange stripe on the shoulder."
icon_state = "labcoat_chem_open"
icon_open = "labcoat_chem_open"
icon_closed = "labcoat_chem"
icon_state = "labcoat_chem"
item_state_slots = list(slot_r_hand_str = "chemist_labcoat", slot_l_hand_str = "chemist_labcoat")
/obj/item/clothing/suit/storage/toggle/labcoat/virologist
name = "Virologist labcoat"
desc = "A suit that protects against minor chemical spills. Offers slightly more protection against biohazards than the standard model. Has a green stripe on the shoulder."
icon_state = "labcoat_vir_open"
icon_open = "labcoat_vir_open"
icon_closed = "labcoat_vir"
icon_state = "labcoat_vir"
item_state_slots = list(slot_r_hand_str = "virologist_labcoat", slot_l_hand_str = "virologist_labcoat")
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 0)
/obj/item/clothing/suit/storage/toggle/labcoat/science
name = "Scientist labcoat"
desc = "A suit that protects against minor chemical spills. Has a purple stripe on the shoulder."
icon_state = "labcoat_tox_open"
icon_open = "labcoat_tox_open"
icon_closed = "labcoat_tox"
icon_state = "labcoat_tox"
item_state_slots = list(slot_r_hand_str = "science_labcoat", slot_l_hand_str = "science_labcoat")
/obj/item/clothing/suit/storage/toggle/labcoat/emt
name = "EMT's labcoat"
desc = "A dark blue labcoat with reflective strips for emergency medical technicians."
icon_state = "labcoat_emt_open"
icon_open = "labcoat_emt_open"
icon_closed = "labcoat_emt"
icon_state = "labcoat_emt"
item_state_slots = list(slot_r_hand_str = "emt_labcoat", slot_l_hand_str = "emt_labcoat")
+2 -62
View File
@@ -396,8 +396,6 @@ obj/item/clothing/suit/kimono
desc = "A thick, well-worn WW2 leather bomber jacket."
icon_state = "bomber"
item_state_slots = list(slot_r_hand_str = "brown_jacket", slot_l_hand_str = "brown_jacket")
icon_open = "bomber_open"
icon_closed = "bomber"
allowed = list (/obj/item/weapon/pen, /obj/item/weapon/paper, /obj/item/device/flashlight, /obj/item/weapon/tank/emergency/oxygen, /obj/item/weapon/storage/fancy/cigarettes, /obj/item/weapon/storage/box/matches, /obj/item/weapon/reagent_containers/food/drinks/flask)
body_parts_covered = UPPER_TORSO|ARMS
flags_inv = HIDEHOLSTER
@@ -420,7 +418,6 @@ obj/item/clothing/suit/kimono
name = "leather jacket"
desc = "A black leather coat."
icon_state = "leather_jacket"
icon_open = "leather_jacket_open"
allowed = list (/obj/item/weapon/pen, /obj/item/weapon/paper, /obj/item/device/flashlight, /obj/item/weapon/tank/emergency/oxygen, /obj/item/weapon/storage/fancy/cigarettes, /obj/item/weapon/storage/box/matches, /obj/item/weapon/reagent_containers/food/drinks/flask)
body_parts_covered = UPPER_TORSO|ARMS
flags_inv = HIDEHOLSTER
@@ -429,8 +426,6 @@ obj/item/clothing/suit/kimono
name = "leather vest"
desc = "A black leather vest."
icon_state = "leather_jacket_sleeveless"
icon_open = "leather_jacket_sleeveless_open"
icon_closed = "leather_jacket_sleeveless"
body_parts_covered = UPPER_TORSO
item_state_slots = list(slot_r_hand_str = "leather_jacket", slot_l_hand_str = "leather_jacket")
@@ -444,16 +439,12 @@ obj/item/clothing/suit/kimono
/obj/item/clothing/suit/storage/toggle/leather_jacket/nanotrasen
desc = "A black leather coat. A corporate logo is proudly displayed on the back."
icon_state = "leather_jacket_nt"
icon_closed = "leather_jacket_nt"
icon_open = "leather_jacket_nt_open"
item_state_slots = list(slot_r_hand_str = "leather_jacket", slot_l_hand_str = "leather_jacket")
/obj/item/clothing/suit/storage/toggle/leather_jacket/nanotrasen/sleeveless
name = "leather vest"
desc = "A black leather vest. A corporate logo is proudly displayed on the back."
icon_state = "leather_jacket_nt_sleeveless"
icon_open = "leather_jacket_nt_sleeveless_open"
icon_closed = "leather_jacket_nt_sleeveless"
body_parts_covered = UPPER_TORSO
item_state_slots = list(slot_r_hand_str = "leather_jacket", slot_l_hand_str = "leather_jacket")
@@ -463,8 +454,6 @@ obj/item/clothing/suit/kimono
desc = "A brown leather coat."
icon_state = "brown_jacket"
item_state_slots = list(slot_r_hand_str = "brown_jacket", slot_l_hand_str = "brown_jacket")
icon_open = "brown_jacket_open"
icon_closed = "brown_jacket"
allowed = list (/obj/item/weapon/pen, /obj/item/weapon/paper, /obj/item/device/flashlight,/obj/item/weapon/tank/emergency/oxygen, /obj/item/weapon/storage/fancy/cigarettes, /obj/item/weapon/storage/box/matches, /obj/item/weapon/reagent_containers/food/drinks/flask)
body_parts_covered = UPPER_TORSO|ARMS
flags_inv = HIDEHOLSTER
@@ -473,8 +462,6 @@ obj/item/clothing/suit/kimono
name = "brown vest"
desc = "A brown leather vest."
icon_state = "brown_jacket_sleeveless"
icon_open = "brown_jacket_sleeveless_open"
icon_closed = "brown_jacket_sleeveless"
body_parts_covered = UPPER_TORSO
item_state_slots = list(slot_r_hand_str = "brown_jacket", slot_l_hand_str = "brown_jacket")
@@ -482,15 +469,11 @@ obj/item/clothing/suit/kimono
desc = "A brown leather coat. A corporate logo is proudly displayed on the back."
icon_state = "brown_jacket_nt"
item_state_slots = list(slot_r_hand_str = "brown_jacket", slot_l_hand_str = "brown_jacket")
icon_open = "brown_jacket_nt_open"
icon_closed = "brown_jacket_nt"
/obj/item/clothing/suit/storage/toggle/brown_jacket/nanotrasen/sleeveless
name = "brown vest"
desc = "A brown leather vest. A corporate logo is proudly displayed on the back."
icon_state = "brown_jacket_nt_sleeveless"
icon_open = "brown_jacket_nt_open"
icon_closed = "brown_jacket_nt_sleeveless"
body_parts_covered = UPPER_TORSO
item_state_slots = list(slot_r_hand_str = "brown_jacket", slot_l_hand_str = "brown_jacket")
@@ -499,8 +482,6 @@ obj/item/clothing/suit/kimono
desc = "A denim coat."
icon_state = "denim_jacket"
item_state_slots = list(slot_r_hand_str = "denim_jacket", slot_l_hand_str = "denim_jacket")
icon_open = "denim_jacket_open"
icon_closed = "denim_jacket"
allowed = list (/obj/item/weapon/pen, /obj/item/weapon/paper, /obj/item/device/flashlight,/obj/item/weapon/tank/emergency/oxygen, /obj/item/weapon/storage/fancy/cigarettes, /obj/item/weapon/storage/box/matches, /obj/item/weapon/reagent_containers/food/drinks/flask)
body_parts_covered = UPPER_TORSO|ARMS
flags_inv = HIDEHOLSTER
@@ -509,8 +490,6 @@ obj/item/clothing/suit/kimono
name = "denim vest"
desc = "A denim vest."
icon_state = "denim_jacket_sleeveless"
icon_open = "denim_jacket_sleeveless_open"
icon_closed = "denim_jacket_sleeveless"
body_parts_covered = UPPER_TORSO
item_state_slots = list(slot_r_hand_str = "denim_jacket", slot_l_hand_str = "denim_jacket")
@@ -518,15 +497,11 @@ obj/item/clothing/suit/kimono
desc = "A denim coat. A corporate logo is proudly displayed on the back."
icon_state = "denim_jacket_nt"
item_state_slots = list(slot_r_hand_str = "denim_jacket", slot_l_hand_str = "denim_jacket")
icon_open = "denim_jacket_nt_open"
icon_closed = "denim_jacket_nt"
/obj/item/clothing/suit/storage/toggle/denim_jacket/nanotrasen/sleeveless
name = "denim vest"
desc = "A denim vest. A corporate logo is proudly displayed on the back."
icon_state = "denim_jacket_nt_sleeveless"
icon_open = "denim_jacket_nt_open"
icon_closed = "denim_jacket_nt_sleeveless"
body_parts_covered = UPPER_TORSO
item_state_slots = list(slot_r_hand_str = "denim_jacket", slot_l_hand_str = "denim_jacket")
@@ -535,8 +510,6 @@ obj/item/clothing/suit/kimono
desc = "A warm, grey sweatshirt."
icon_state = "grey_hoodie"
item_state_slots = list(slot_r_hand_str = "suit_grey", slot_l_hand_str = "suit_grey")
icon_open = "grey_hoodie_open"
icon_closed = "grey_hoodie"
min_cold_protection_temperature = T0C - 20
cold_protection = UPPER_TORSO|LOWER_TORSO|ARMS
flags_inv = HIDEHOLSTER
@@ -546,87 +519,65 @@ obj/item/clothing/suit/kimono
desc = "A warm, black sweatshirt."
icon_state = "black_hoodie"
item_state_slots = list(slot_r_hand_str = "suit_black", slot_l_hand_str = "suit_black")
icon_open = "black_hoodie_open"
icon_closed = "black_hoodie"
/obj/item/clothing/suit/storage/toggle/hoodie/red
name = "red hoodie"
desc = "A warm, red sweatshirt."
icon_state = "red_hoodie"
item_state_slots = list(slot_r_hand_str = "suit_red", slot_l_hand_str = "suit_red")
icon_open = "red_hoodie_open"
icon_closed = "red_hoodie"
/obj/item/clothing/suit/storage/toggle/hoodie/blue
name = "blue hoodie"
desc = "A warm, blue sweatshirt."
icon_state = "blue_hoodie"
item_state_slots = list(slot_r_hand_str = "suit_blue", slot_l_hand_str = "suit_blue")
icon_open = "blue_hoodie_open"
icon_closed = "blue_hoodie"
/obj/item/clothing/suit/storage/toggle/hoodie/green
name = "green hoodie"
desc = "A warm, green sweatshirt."
icon_state = "green_hoodie"
item_state_slots = list(slot_r_hand_str = "suit_olive", slot_l_hand_str = "suit_olive")
icon_open = "green_hoodie_open"
icon_closed = "green_hoodie"
/obj/item/clothing/suit/storage/toggle/hoodie/orange
name = "orange hoodie"
desc = "A warm, orange sweatshirt."
icon_state = "orange_hoodie"
item_state_slots = list(slot_r_hand_str = "suit_orange", slot_l_hand_str = "suit_orange")
icon_open = "orange_hoodie_open"
icon_closed = "orange_hoodie"
/obj/item/clothing/suit/storage/toggle/hoodie/yellow
name = "yellow hoodie"
desc = "A warm, yellow sweatshirt."
icon_state = "yellow_hoodie"
item_state_slots = list(slot_r_hand_str = "suit_yellow", slot_l_hand_str = "suit_yellow")
icon_open = "yellow_hoodie_open"
icon_closed = "yellow_hoodie"
/obj/item/clothing/suit/storage/toggle/hoodie/cti
name = "CTI hoodie"
desc = "A warm, black sweatshirt. It bears the letters ‘CTI’ on the back, a lettering to the prestigious university in Tau Ceti, Ceti Technical Institute. There is a blue supernova embroidered on the front, the emblem of CTI."
icon_state = "cti_hoodie"
item_state_slots = list(slot_r_hand_str = "suit_black", slot_l_hand_str = "suit_black")
icon_open = "cti_hoodie_open"
icon_closed = "cti_hoodie"
/obj/item/clothing/suit/storage/toggle/hoodie/mu
name = "mojave university hoodie"
desc = "A warm, gray sweatshirt. It bears the letters ‘MU’ on the front, a lettering to the well-known public college, Mojave University."
icon_state = "mu_hoodie"
item_state_slots = list(slot_r_hand_str = "suit_grey", slot_l_hand_str = "suit_grey")
icon_open = "mu_hoodie_open"
icon_closed = "mu_hoodie"
/obj/item/clothing/suit/storage/toggle/hoodie/nt
name = "NT hoodie"
desc = "A warm, blue sweatshirt. It proudly bears the silver NanoTrasen insignia lettering on the back. The edges are trimmed with silver."
icon_state = "nt_hoodie"
item_state_slots = list(slot_r_hand_str = "suit_blue", slot_l_hand_str = "suit_blue")
icon_open = "nt_hoodie_open"
icon_closed = "nt_hoodie"
/obj/item/clothing/suit/storage/toggle/hoodie/smw
name = "Space Mountain Wind hoodie"
desc = "A warm, black sweatshirt. It has the logo for the popular softdrink Space Mountain Wind on both the front and the back."
icon_state = "smw_hoodie"
item_state_slots = list(slot_r_hand_str = "suit_black", slot_l_hand_str = "suit_black")
icon_open = "smw_hoodie_open"
icon_closed = "smw_hoodie"
/obj/item/clothing/suit/storage/toggle/redandblackjacket
name = "red and black jacket"
desc = "A cool red and black jacket to keep you stylish and cozy."
icon_state = "redandblackjacket"
icon_open = "redandblackjacket_open"
icon_closed = "redandblackjacket"
flags_inv = HIDEHOLSTER
/obj/item/clothing/suit/whitedress
@@ -833,37 +784,28 @@ obj/item/clothing/suit/kimono
desc = "a track jacket, for the athletic."
icon_state = "trackjacket"
item_state_slots = list(slot_r_hand_str = "black_labcoat", slot_l_hand_str = "black_labcoat")
icon_open = "trackjacket_open"
icon_closed = "trackjacket"
allowed = list (/obj/item/weapon/pen, /obj/item/weapon/paper, /obj/item/device/flashlight,/obj/item/weapon/tank/emergency/oxygen, /obj/item/weapon/storage/fancy/cigarettes, /obj/item/weapon/storage/box/matches, /obj/item/weapon/reagent_containers/food/drinks/flask)
/obj/item/clothing/suit/storage/toggle/track/blue
name = "blue track jacket"
icon_state = "trackjacketblue"
item_state_slots = list(slot_r_hand_str = "blue_labcoat", slot_l_hand_str = "blue_labcoat")
icon_open = "trackjacketblue_open"
icon_closed = "trackjacketblue"
/obj/item/clothing/suit/storage/toggle/track/green
name = "green track jacket"
icon_state = "trackjacketgreen"
item_state_slots = list(slot_r_hand_str = "green_labcoat", slot_l_hand_str = "green_labcoat")
icon_open = "trackjacketgreen_open"
icon_closed = "trackjacketgreen"
/obj/item/clothing/suit/storage/toggle/track/red
name = "red track jacket"
icon_state = "trackjacketred"
item_state_slots = list(slot_r_hand_str = "red_labcoat", slot_l_hand_str = "red_labcoat")
icon_open = "trackjacketred_open"
icon_closed = "trackjacketred"
/obj/item/clothing/suit/storage/toggle/track/white
name = "white track jacket"
icon_state = "trackjacketwhite"
item_state_slots = list(slot_r_hand_str = "labcoat", slot_l_hand_str = "labcoat")
icon_open = "trackjacketwhite_open"
icon_closed = "trackjacketwhite"
//Flannels
@@ -957,10 +899,8 @@ obj/item/clothing/suit/kimono
/obj/item/clothing/suit/storage/toggle/greengov
name = "green formal jacket"
desc = "A sleek proper formal jacket with gold buttons."
icon_state = "suitjacket_green_open"
icon_state = "suitjacket_green"
item_state_slots = list(slot_r_hand_str = "suit_olive", slot_l_hand_str = "suit_olive")
icon_open = "suitjacket_green_open"
icon_closed = "suitjacket_green"
blood_overlay_type = "coat"
body_parts_covered = UPPER_TORSO|ARMS
flags_inv = HIDEHOLSTER
-6
View File
@@ -129,8 +129,6 @@
desc = "A uniform dress jacket with gold toggles."
icon_state = "whitedress"
item_state = "labcoat"
icon_open = "whitedress_open"
icon_closed = "whitedress"
blood_overlay_type = "coat"
/obj/item/clothing/suit/storage/toggle/dress/fleet
@@ -142,8 +140,6 @@
desc = "A crisp white SCG Fleet dress jacket dripping with gold accents. So bright it's blinding."
icon_state = "whitedress_com"
item_state = "labcoat"
icon_open = "whitedress_com_open"
icon_closed = "whitedress_com"
blood_overlay_type = "coat"
/obj/item/clothing/suit/dress/marine
@@ -163,6 +159,4 @@
desc = "A black synthleather jacket. The word 'MARSHAL' is stenciled onto the back in gold lettering."
icon_state = "marshal_jacket"
item_state_slots = list(slot_r_hand_str = "suit_black", slot_l_hand_str = "suit_black")
icon_open = "marshal_jacket_open"
icon_closed = "marshal_jacket"
body_parts_covered = UPPER_TORSO|ARMS
+14 -12
View File
@@ -31,8 +31,7 @@
//Jackets with buttons, used for labcoats, IA jackets, First Responder jackets, and brown jackets.
/obj/item/clothing/suit/storage/toggle
flags_inv = HIDEHOLSTER
var/icon_open
var/icon_closed
var/open = 0 //0 is closed, 1 is open, -1 means it won't be able to toggle
verb/toggle()
set name = "Toggle Coat Buttons"
set category = "Object"
@@ -40,12 +39,14 @@
if(!usr.canmove || usr.stat || usr.restrained())
return 0
if(icon_state == icon_open) //Will check whether icon state is currently set to the "open" or "closed" state and switch it around with a message to the user
icon_state = icon_closed
if(open == 1) //Will check whether icon state is currently set to the "open" or "closed" state and switch it around with a message to the user
open = 0
icon_state = initial(icon_state)
flags_inv = HIDETIE|HIDEHOLSTER
usr << "You button up the coat."
else if(icon_state == icon_closed)
icon_state = icon_open
else if(open == 0)
open = 1
icon_state = "[icon_state]_open"
flags_inv = HIDEHOLSTER
usr << "You unbutton the coat."
else //in case some goofy admin switches icon states around without switching the icon_open or icon_closed
@@ -56,8 +57,7 @@
/obj/item/clothing/suit/storage/hooded/toggle
flags_inv = HIDEHOLSTER
var/icon_open
var/icon_closed
var/open = 0 //0 is closed, 1 is open, -1 means it won't be able to toggle
verb/toggle()
set name = "Toggle Coat Buttons"
set category = "Object"
@@ -65,12 +65,14 @@
if(!usr.canmove || usr.stat || usr.restrained())
return 0
if(icon_state == icon_open) //Will check whether icon state is currently set to the "open" or "closed" state and switch it around with a message to the user
icon_state = icon_closed
if(open == 1) //Will check whether icon state is currently set to the "open" or "closed" state and switch it around with a message to the user
open = 0
icon_state = initial(icon_state)
flags_inv = HIDETIE|HIDEHOLSTER
usr << "You button up the coat."
else if(icon_state == icon_closed)
icon_state = icon_open
else if(open == 0)
open = 1
icon_state = "[icon_state]_open"
flags_inv = HIDEHOLSTER
usr << "You unbutton the coat."
else //in case some goofy admin switches icon states around without switching the icon_open or icon_closed
@@ -120,6 +120,7 @@
/material/wood/generate_recipes()
..()
recipes += new/datum/stack_recipe("wooden sandals", /obj/item/clothing/shoes/sandal, 1)
recipes += new/datum/stack_recipe("wood circlet", /obj/item/woodcirclet, 1)
recipes += new/datum/stack_recipe("clipboard", /obj/item/weapon/clipboard, 1)
recipes += new/datum/stack_recipe("wood floor tile", /obj/item/stack/tile/wood, 1, 4, 20)
recipes += new/datum/stack_recipe("wooden chair", /obj/structure/bed/chair/wood, 3, time = 10, one_per_turf = 1, on_floor = 1)
+1 -3
View File
@@ -104,8 +104,6 @@
var/turf/D = locate(T.x, throwy - 1, 1)
for(var/atom/movable/AM as mob|obj in T)
AM.Move(D)
if(istype(T, /turf/simulated))
qdel(T)
for(var/mob/living/carbon/bug in destination)
bug.gib()
@@ -119,7 +117,7 @@
if(M.client)
spawn(0)
if(M.buckled)
M << "\red Sudden acceleration presses you into your chair!"
M << "\red Sudden acceleration presses you into \the [M.buckled]!"
shake_camera(M, 3, 1)
else
M << "\red The floor lurches beneath you!"
+1 -1
View File
@@ -19,7 +19,7 @@
var/list/GM_checked = list()
for(var/turf/simulated/T in A)
if(!istype(T) || isnull(T.zone) || istype(T, /turf/simulated/floor/airless))
if(!istype(T) || isnull(T.zone) || istype(T, /turf/simulated/floor/airless) || istype(T,/turf/simulated/shuttle/plating/airless))
continue
if(T.zone.air in GM_checked)
continue