diff --git a/code/defines/obj/storage.dm b/code/defines/obj/storage.dm
index 4fa59148fcd..9ca0c34afb8 100644
--- a/code/defines/obj/storage.dm
+++ b/code/defines/obj/storage.dm
@@ -603,39 +603,61 @@
/obj/structure/closet/syndicate/resources/
- desc = "It's an emergency storage closet for repairs."
+ desc = "An old, dusty locker."
/obj/structure/closet/syndicate/resources/New()
..()
+ var/common_min = 30 //Minimum amount of minerals in the stack for common minerals
+ var/common_max = 50 //Maximum amount of HONK in the stack for HONK common minerals
+ var/rare_min = 5 //Minimum HONK of HONK in the stack HONK HONK rare minerals
+ var/rare_max = 20 //Maximum HONK HONK HONK in the HONK for HONK rare HONK
- var/list/resources_common = list(
-
- /obj/item/stack/sheet/metal,
- /obj/item/stack/sheet/glass,
- /obj/item/stack/sheet/plasteel,
- /obj/item/stack/rods
- )
-
- var/list/resources_rare = list(
-
- /obj/item/stack/sheet/gold,
- /obj/item/stack/sheet/silver,
- /obj/item/stack/sheet/plasma,
- /obj/item/stack/sheet/uranium,
- /obj/item/stack/sheet/diamond
-
- )
sleep(2)
- for(var/i = 0, i<2, i++)
- for(var/res in resources_common)
- var/obj/item/stack/R = new res(src)
- R.amount = rand(40,R.max_amount)
+ var/pickednum = rand(1, 50)
- for(var/res in resources_rare)
- var/obj/item/stack/R = new res(src)
- R.amount = rand(10,25)
+ //Sad trombone
+ if(pickednum == 1)
+ var/obj/item/weapon/paper/P = new /obj/item/weapon/paper(src)
+ P.name = "IOU"
+ P.info = "Sorry man, we needed the money so we sold your stash. It's ok, we'll double our money for sure this time!"
+
+ //Metal (common ore)
+ if(pickednum >= 2)
+ new /obj/item/stack/sheet/metal(src, rand(common_min, common_max))
+
+ //Glass (common ore)
+ if(pickednum >= 5)
+ new /obj/item/stack/sheet/glass(src, rand(common_min, common_max))
+
+ //Plasteel (common ore) Because it has a million more uses then plasma
+ if(pickednum >= 10)
+ new /obj/item/stack/sheet/plasteel(src, rand(common_min, common_max))
+
+ //Plasma (rare ore)
+ if(pickednum >= 15)
+ new /obj/item/stack/sheet/plasma(src, rand(rare_min, rare_max))
+
+ //Silver (rare ore)
+ if(pickednum >= 20)
+ new /obj/item/stack/sheet/silver(src, rand(rare_min, rare_max))
+
+ //Gold (rare ore)
+ if(pickednum >= 30)
+ new /obj/item/stack/sheet/gold(src, rand(rare_min, rare_max))
+
+ //Uranium (rare ore)
+ if(pickednum >= 40)
+ new /obj/item/stack/sheet/uranium(src, rand(rare_min, rare_max))
+
+ //Diamond (rare HONK)
+ if(pickednum >= 45)
+ new /obj/item/stack/sheet/diamond(src, rand(rare_min, rare_max))
+
+ //Jetpack (You hit the jackpot!)
+ if(pickednum == 50)
+ new /obj/item/weapon/tank/jetpack/carbondioxide(src)
return
diff --git a/code/game/asteroid/artifacts.dm b/code/game/asteroid/artifacts.dm
index ddf1873c460..4cc1f825e17 100644
--- a/code/game/asteroid/artifacts.dm
+++ b/code/game/asteroid/artifacts.dm
@@ -12,7 +12,7 @@ var/global/list/space_surprises = list( /obj/item/clothing/mask/facehugger/angr
/obj/item/weapon/pickaxe/plasmacutter =2,
/obj/structure/closet/syndicate/resources =2,
/obj/item/weapon/melee/energy/sword/pirate =1,
- // /obj/mecha/working/ripley/mining =1
+ /obj/mecha/working/ripley/mining =1
// /obj/creature =0,
// /obj/item/weapon/rcd =0,
diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm
index d3323663982..4691843c714 100644
--- a/code/game/machinery/doors/windowdoor.dm
+++ b/code/game/machinery/doors/windowdoor.dm
@@ -1,9 +1,10 @@
/obj/machinery/door/window
name = "interior door"
- desc = "A door made from a window, yet it can not break nor be depowered."
+ desc = "A strong door."
icon = 'windoor.dmi'
icon_state = "left"
var/base_state = "left"
+ var/health = 200.0 //If you change this, consiter changing ../door/window/brigdoor/ health at the bottom of this .dm file
visible = 0.0
flags = ON_BORDER
opacity = 0
@@ -28,6 +29,11 @@
src.base_state = src.icon_state
return
+/obj/machinery/door/window/Del()
+ density = 0
+ playsound(src, "shatter", 70, 1)
+ ..()
+
/obj/machinery/door/window/Bumped(atom/movable/AM as mob|obj)
if (!( ismob(AM) ))
var/obj/machinery/bot/bot = AM
@@ -112,13 +118,49 @@
src.operating = 0
return 1
-/obj/machinery/door/window/attackby(obj/item/I as obj, mob/user as mob)
+//When an object is thrown at the window
+/obj/machinery/door/window/hitby(AM as mob|obj)
+
+ ..()
+ for(var/mob/O in viewers(src, null))
+ O.show_message("\red The glass door was hit by [AM].", 1)
+ var/tforce = 0
+ if(ismob(AM))
+ tforce = 40
+ else
+ tforce = AM:throwforce
+ playsound(src.loc, 'Glasshit.ogg', 100, 1)
+ src.health = max(0, src.health - tforce)
+ if (src.health <= 0)
+ new /obj/item/weapon/shard(src.loc)
+ var/obj/item/weapon/cable_coil/CC = new /obj/item/weapon/cable_coil(src.loc)
+ CC.amount = 2
+ src.density = 0
+ del(src)
+ return
+ //..() //Does this really need to be here twice? The parent proc doesn't even do anything yet. - Nodrak
+ return
+
+
+/obj/machinery/door/window/attack_ai(mob/user as mob)
+ return src.attack_hand(user)
+
+
+/obj/machinery/door/window/attack_paw(mob/user as mob)
+ return src.attack_hand(user)
+
+
+/obj/machinery/door/window/attack_hand(mob/user as mob)
+ return src.attackby(user, user)
+
+
+/obj/machinery/door/window/attackby(obj/item/weapon/I as obj, mob/user as mob)
+
+ //If it's in the process of opening/closing, ignore the click
if (src.operating)
return
- src.add_fingerprint(user)
- if (!src.requiresID())
- //don't care who they are or what they have, act as if they're NOTHING
- user = null
+
+ //Emags and ninja swords? You may pass.
if (src.density && (istype(I, /obj/item/weapon/card/emag)||istype(I, /obj/item/weapon/melee/energy/blade)))
if(istype(I, /obj/item/weapon/card/emag))
var/obj/item/weapon/card/emag/E = I
@@ -139,24 +181,50 @@
sleep(6)
open()
return 1
+
+ //If it's a weapon, smash windoor. Unless it's an id card, agent card, ect.. then ignore it (Cards really shouldnt damage a door anyway)
+ if(src.density && istype(I, /obj/item/weapon) && !istype(I, /obj/item/weapon/card))
+ var/aforce = I.force
+ if(I.damtype == BRUTE || I.damtype == BURN)
+ src.health = max(0, src.health - aforce)
+ playsound(src.loc, 'Glasshit.ogg', 75, 1)
+ for(var/mob/O in viewers(src, null))
+ O.show_message("\red [src] was hit by [I].", 1)
+ if (src.health <= 0)
+ new /obj/item/weapon/shard(src.loc)
+ var/obj/item/weapon/cable_coil/CC = new /obj/item/weapon/cable_coil(src.loc)
+ CC.amount = 2
+ src.density = 0
+ del(src)
+ return
+
+
+ src.add_fingerprint(user)
+ if (!src.requiresID())
+ //don't care who they are or what they have, act as if they're NOTHING
+ user = null
+
if (src.allowed(user) || istype(I, /obj/item/device/hacktool))
if (src.density)
open()
else
close()
+
else if (src.density)
flick(text("[]deny", src.base_state), src)
+
return
/obj/machinery/door/window/brigdoor
- name = "Brig Door"
+ name = "Secure Door"
icon = 'windoor.dmi'
icon_state = "leftsecure"
base_state = "leftsecure"
req_access = list(access_security)
var/id = null
+ health = 500.0 //Stronger doors for prison (regular window door health is 200)
/obj/machinery/door/window/northleft
@@ -191,7 +259,6 @@
icon_state = "right"
base_state = "right"
-
/obj/machinery/door/window/brigdoor/northleft
dir = NORTH
diff --git a/code/game/mecha/working/ripley.dm b/code/game/mecha/working/ripley.dm
index 24dcea75d08..8e05d853b84 100644
--- a/code/game/mecha/working/ripley.dm
+++ b/code/game/mecha/working/ripley.dm
@@ -41,6 +41,24 @@
ME.attach(src)
return
+/obj/mecha/working/ripley/mining
+ desc = "An old, dusty mining ripley."
+ name = "APLU \"Miner\""
+
+/obj/mecha/working/ripley/mining/New()
+ ..()
+ //Attach drill
+ if(prob(25)) //Possible diamond drill... Feeling lucky?
+ var/obj/item/mecha_parts/mecha_equipment/tool/drill/diamonddrill/D = new /obj/item/mecha_parts/mecha_equipment/tool/drill/diamonddrill
+ D.attach(src)
+ else
+ var/obj/item/mecha_parts/mecha_equipment/tool/drill/D = new /obj/item/mecha_parts/mecha_equipment/tool/drill
+ D.attach(src)
+
+ //Attach hydrolic clamp
+ var/obj/item/mecha_parts/mecha_equipment/tool/hydraulic_clamp/HC = new /obj/item/mecha_parts/mecha_equipment/tool/hydraulic_clamp
+ HC.attach(src)
+
/obj/mecha/working/ripley/Exit(atom/movable/O)
if(O in cargo)
return 0
diff --git a/code/game/objects/window.dm b/code/game/objects/window.dm
index 77368697ec1..8829ab89d3a 100644
--- a/code/game/objects/window.dm
+++ b/code/game/objects/window.dm
@@ -87,7 +87,7 @@
src.density = 0
del(src)
return
- ..()
+ //..() //Does this really need to be here twice? The parent proc doesn't even do anything yet. - Nodrak
return
//These all need to be rewritten to use visiblemessage()
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index 2c9cad25399..9398940b142 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -1502,9 +1502,9 @@
face_standing = new /image()
face_lying = new /image()
face_standing.icon = eyes_s
- face_standing.layer = FACE_LAYER
+ face_standing.layer = MOB_LAYER
face_lying.icon = eyes_l
- face_lying.layer = FACE_LAYER
+ face_lying.layer = MOB_LAYER
del(mouth_l)
del(mouth_s)