Merge branch 'master' of https://github.com/tgstation/-tg-station into PullvsGrab

Conflicts:
	code/__DEFINES/misc.dm
	code/game/objects/structures/tables_racks.dm
	code/modules/mob/living/carbon/carbon.dm
	code/modules/mob/living/living.dm
	code/modules/mob/living/living_defines.dm
This commit is contained in:
phil235
2016-05-25 23:48:00 +02:00
439 changed files with 14197 additions and 7040 deletions
+1 -1
View File
@@ -141,7 +141,7 @@
user << "<span class='warning'>This MMI does not seem to fit!</span>"
return
if(M.syndiemmi)
if(M.hacked)
user << "<span class='warning'>This MMI does not seem to fit!</span>"
return
@@ -16,7 +16,8 @@
handle_layer()
/obj/structure/chair/deconstruct()
if(buildstacktype)
// If we have materials, and don't have the NOCONSTRUCT flag
if(buildstacktype && (!(flags & NODECONSTRUCT)))
new buildstacktype(loc,buildstackamount)
..()
@@ -381,10 +381,10 @@
/obj/structure/closet/AltClick(mob/user)
..()
if(!user.canUseTopic(user))
if(!user.canUseTopic(src, be_close=TRUE))
user << "<span class='warning'>You can't do that right now!</span>"
return
if(opened || !secure || !in_range(src, user))
if(opened || !secure)
return
else
togglelock(user)
@@ -77,8 +77,8 @@
new /obj/item/weapon/shield/riot/tele(src)
new /obj/item/weapon/storage/belt/security/full(src)
new /obj/item/weapon/gun/energy/gun/hos(src)
new /obj/item/weapon/door_remote/head_of_security(src)
new /obj/item/device/flashlight/seclite(src)
new /obj/item/weapon/pinpointer(src)
/obj/structure/closet/secure_closet/warden
name = "\proper warden's locker"
@@ -101,6 +101,7 @@
new /obj/item/weapon/storage/belt/security/full(src)
new /obj/item/device/flashlight/seclite(src)
new /obj/item/clothing/gloves/color/black/krav_maga/sec(src)
new /obj/item/weapon/door_remote/head_of_security(src)
/obj/structure/closet/secure_closet/security
name = "security officer's locker"
+6 -21
View File
@@ -239,38 +239,23 @@
//a rock is flora according to where the icon file is
//and now these defines
/obj/structure/flora/rock
name = "rock"
desc = "a rock"
icon_state = "rock"
icon_state = "basalt"
desc = "A volcanic rock"
icon = 'icons/obj/flora/rocks.dmi'
anchored = 1
burn_state = FIRE_PROOF
density = 1
/obj/structure/flora/rock/New()
..()
icon_state = "[icon_state][rand(1,5)]"
/obj/structure/flora/rock/pile
name = "rocks"
desc = "some rocks"
icon_state = "rockpile"
density = 0
/obj/structure/flora/rock/volcanic
icon_state = "basalt"
desc = "A volcanic rock"
/obj/structure/flora/rock/volcanic/New()
..()
icon_state = "[icon_state][rand(1,3)]"
/obj/structure/flora/rock/pile/volcanic
/obj/structure/flora/rock/pile
icon_state = "lavarocks"
desc = "A pile of rocks"
/obj/structure/flora/rock/pile/volcanic/New()
/obj/structure/flora/rock/pile/New()
..()
icon_state = "[icon_state][rand(1,3)]"
+1 -1
View File
@@ -376,7 +376,7 @@
user.visible_message("<span class='notice'>[user] plates [src] with runed metal.</span>", "<span class='notice'>You construct a runed wall.</span>")
R.use(1)
var/turf/T = get_turf(src)
T.ChangeTurf(/turf/closed/wall/cult)
T.ChangeTurf(/turf/closed/wall/mineral/cult)
qdel(src)
else
+10
View File
@@ -258,3 +258,13 @@
/obj/structure/grille/storage_contents_dump_act(obj/item/weapon/storage/src_object, mob/user)
return 0
/obj/structure/grille/broken // Pre-broken grilles for map placement
icon_state = "brokengrille"
density = 0
health = 0
destroyed = 1
/obj/structure/grille/broken/New()
..()
stored.amount = 1
+1 -3
View File
@@ -124,11 +124,9 @@
/obj/structure/reflector/AltClick(mob/user)
..()
if(!user.canUseTopic(user))
if(!user.canUseTopic(src, be_close=TRUE))
user << "<span class='warning'>You can't do that right now!</span>"
return
if(!in_range(src, user))
return
else
rotate()
+34 -9
View File
@@ -252,29 +252,54 @@
buildstack = /obj/item/stack/sheet/glass
canSmoothWith = null
health = 50
var/list/debris = list()
/obj/structure/table/glass/New()
. = ..()
debris += new frame
debris += new /obj/item/weapon/shard
/obj/structure/table/glass/Destroy()
for(var/i in debris)
qdel(i)
. = ..()
/obj/structure/table/glass/Crossed(atom/movable/AM)
. = ..()
if(flags & NODECONSTRUCT)
return
if(!isliving(AM))
return
// Don't break if they're just flying past
if(AM.throwing)
return
spawn(5)
// Check again in a bit though
if(AM.loc == get_turf(src))
check_break(AM)
else
check_break(AM)
if(istype(AM, /mob/living))
var/mob/living/M = AM
if(has_gravity(M) && M.mob_size > MOB_SIZE_SMALL)
table_shatter(M)
/obj/structure/table/glass/proc/check_break(mob/living/M)
if(has_gravity(M) && M.mob_size > MOB_SIZE_SMALL)
table_shatter(M)
/obj/structure/table/glass/proc/table_shatter(mob/M)
visible_message("<span class='warning'>[src] breaks!</span>")
visible_message("<span class='warning'>[src] breaks!</span>",
"<span class='danger'>You hear breaking glass.</span>")
playsound(src.loc, "shatter", 50, 1)
new frame(src.loc)
var/obj/item/weapon/shard/S = new(src.loc)
S.throw_impact(M)
for(var/i in debris)
var/atom/movable/AM = i
AM.loc = get_turf(src)
if(istype(AM, /obj/item/weapon/shard))
AM.throw_impact(M)
M.Weaken(5)
qdel(src)
/obj/structure/table/glass/narsie_act()
color = NARSIE_WINDOW_COLOUR
for(var/obj/item/weapon/shard/S in debris)
S.color = NARSIE_WINDOW_COLOUR
/*
* Wooden tables
*/
+2 -2
View File
@@ -167,7 +167,7 @@
else
if(istype(loc, /turf/open))
var/turf/open/tile = loc
tile.MakeSlippery()
tile.MakeSlippery(min_wet_time = 5, wet_time_to_add = 1)
/obj/machinery/shower/attackby(obj/item/I, mob/user, params)
@@ -477,4 +477,4 @@
/obj/structure/sink/puddle/attackby(obj/item/O, mob/user, params)
icon_state = "puddle-splash"
. = ..()
icon_state = "puddle"
icon_state = "puddle"
+27 -17
View File
@@ -14,10 +14,10 @@
var/reinf = 0
var/wtype = "glass"
var/fulltile = 0
var/list/storeditems = list()
// var/silicate = 0 // number of units of silicate
// var/icon/silicateIcon = null // the silicated icon
var/image/crack_overlay
var/list/debris = list()
can_be_unanchored = 1
/obj/structure/window/examine(mob/user)
@@ -32,21 +32,25 @@
if(reinf)
state = 2*anchored
spawn(5) // The NODECONSTRUCT flag gets added immediately by the holodeck (but not immediately enough)
if(!(flags & NODECONSTRUCT))
storeditems.Add(new/obj/item/weapon/shard(src))
if(fulltile)
storeditems.Add(new/obj/item/weapon/shard(src))
if(reinf)
var/obj/item/stack/rods/R = new/obj/item/stack/rods(src)
storeditems.Add(R)
if(fulltile)
R.add(1)
ini_dir = dir
air_update_turf(1)
return
// Precreate our own debris
var/shards = 1
if(fulltile)
shards++
var/rods = 0
if(reinf)
rods++
if(fulltile)
rods++
for(var/i in 1 to shards)
debris += new /obj/item/weapon/shard(src)
if(rods)
debris += new /obj/item/stack/rods(src, rods)
/obj/structure/window/bullet_act(obj/item/projectile/P)
. = ..()
@@ -65,7 +69,9 @@
shatter()
/obj/structure/window/narsie_act()
color = "#7D1919"
color = NARSIE_WINDOW_COLOUR
for(var/obj/item/weapon/shard/shard in debris)
shard.color = NARSIE_WINDOW_COLOUR
/obj/structure/window/singularity_pull(S, current_size)
if(current_size >= STAGE_FIVE)
@@ -276,9 +282,13 @@
return
playsound(src, "shatter", 70, 1)
var/turf/T = loc
for(var/obj/item/I in storeditems)
I.loc = T
transfer_fingerprints_to(I)
if(!(flags & NODECONSTRUCT))
for(var/i in debris)
var/obj/item/I = i
I.loc = T
transfer_fingerprints_to(I)
qdel(src)
update_nearby_icons()