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

Conflicts:
	code/game/turfs/simulated/floor/light_floor.dm
This commit is contained in:
Remie Richards
2015-02-24 22:16:53 +00:00
170 changed files with 3320 additions and 1413 deletions
+122
View File
@@ -0,0 +1,122 @@
/obj/structure/sign/barsign // All Signs are 64 by 32 pixels, they take two tiles
name = "Bar Sign"
desc = "A bar sign with no writing on it"
icon = 'icons/obj/barsigns.dmi'
icon_state = "empty"
req_access = list(access_bar)
var/list/barsigns=list()
/obj/structure/sign/barsign/New()
..()
//filling the barsigns list
for(var/bartype in typesof(/datum/barsign) - /datum/barsign)
var/datum/barsign/signinfo = new bartype
barsigns += signinfo
//randomly assigning a sign
set_sign(pick(barsigns))
/obj/structure/sign/barsign/proc/set_sign(var/datum/barsign/sign)
if(!istype(sign))
return
icon_state = sign.icon
name = sign.name
if(sign.desc)
desc = sign.desc
else
desc = "It displays \"[name]\"."
/obj/structure/sign/barsign/attack_ai(mob/user as mob)
return src.attack_hand(user)
/obj/structure/sign/barsign/attack_hand(mob/user as mob)
if (!src.allowed(user))
user << "<span class = 'info'>Access denied.</span>"
return
pick_sign()
/obj/structure/sign/barsign/emp_act(severity)
var/prev_icon = icon_state
icon_state = "empbarsign"
sleep(300*severity) //measured in deci-seconds
icon_state = prev_icon
/obj/structure/sign/barsign/proc/pick_sign()
var/picked_name = input("Available Signage", "Bar Sign") as null|anything in barsigns
if(!picked_name)
return
set_sign(picked_name)
//Code below is to define useless variables for datums. It errors without these
/datum/barsign
var/name = "Name"
var/icon = "Icon"
var/desc = "desc"
//Anything below this is where all the specific signs are. If people want to add more signs, add them below.
/datum/barsign/maltesefalcon
name = "Maltese Falcon"
icon = "maltesefalcon"
desc = "The Maltese Faclon, Space Bar and Grill"
/datum/barsign/thebark
name = "The Bark"
icon = "thebark"
desc = "Ian's bar of choice"
/datum/barsign/harmbaton
name = "The Harmbaton"
icon = "theharmbaton"
desc = "A great dining experience for both security members and assistants"
/datum/barsign/thesingulo
name = "The Singulo"
icon = "thesingulo"
desc = "Where people go that'd rather not be called by their name"
/datum/barsign/thedrunkcarp
name = "The Drunk Carp"
icon = "thedrunkcarp"
desc = "Don't drink and Swim"
/datum/barsign/scotchservinwill
name = "Scotch Servin Willy's"
icon = "scotchservinwill"
desc = "Willy sure moved up in the world from clown to bartender"
/datum/barsign/officerbeersky
name = "Officer Beersky's"
icon = "officerbeersky"
desc = "Man eat a dong, these drinks are great"
/datum/barsign/thecavern
name = "The Cavern"
icon = "thecavern"
desc = "Fine drinks while listening to some fine tunes"
/datum/barsign/theouterspess
name = "The Outer Spess"
icon = "theouterspess"
desc = "This bar isn't actually located in outer space"
/datum/barsign/slipperyshots
name = "Slippery Shots"
icon = "slipperyshots"
desc = "Slippery slope to drunkeness with our shots!"
/datum/barsign/thegreytide
name = "The Grey Tide"
icon = "thegreytide"
desc = "Take a break from toolboxing and enjoy a lazy beer!"
/datum/barsign/honkednloaded
name = "Honked 'n' Loaded"
icon = "honkednloaded"
desc = "Honk."
@@ -34,9 +34,10 @@
new /obj/item/clothing/under/rank/cargo(src)
new /obj/item/clothing/shoes/sneakers/brown(src)
new /obj/item/device/radio/headset/headset_cargo(src)
new /obj/item/clothing/gloves/fingerless(src)
// new /obj/item/weapon/cartridge/quartermaster(src)
new /obj/item/clothing/suit/fire/firefighter(src)
new /obj/item/clothing/gloves/fingerless(src)
new /obj/item/device/megaphone/cargo(src)
new /obj/item/weapon/tank/internals/emergency_oxygen(src)
new /obj/item/clothing/mask/gas(src)
new /obj/item/clothing/glasses/meson(src)
@@ -48,6 +48,7 @@
new /obj/item/clothing/shoes/sneakers/brown(src)
new /obj/item/weapon/storage/box/ids(src)
new /obj/item/weapon/storage/box/ids(src)
new /obj/item/device/megaphone/command(src)
new /obj/item/clothing/suit/armor/vest(src)
new /obj/item/weapon/gun/energy/gun(src)
new /obj/item/device/flash/handheld(src)
@@ -80,6 +81,7 @@
new /obj/item/clothing/glasses/hud/security/sunglasses/eyepatch(src)
new /obj/item/weapon/storage/lockbox/loyalty(src)
new /obj/item/weapon/storage/box/flashbangs(src)
new /obj/item/device/megaphone/sec(src)
new /obj/item/tapeproj/security(src)
new /obj/item/clothing/mask/gas/sechailer/swat(src)
new /obj/item/weapon/shield/riot/tele(src)
+11 -1
View File
@@ -118,7 +118,17 @@
else
user << "<span class='warning'>You can't reach, close it first!</span>"
if(istype(W, /obj/item/weapon/pickaxe/plasmacutter) || istype(W, /obj/item/weapon/pickaxe/drill/diamonddrill) || istype(W, /obj/item/weapon/melee/energy/blade))
if(istype(W, /obj/item/weapon/pickaxe/plasmacutter) || istype(W, /obj/item/weapon/melee/energy/blade))
dismantle(user)
if(istype(W, /obj/item/weapon/pickaxe/drill/jackhammer))
var/obj/item/weapon/pickaxe/drill/jackhammer/D = W
if(!D.bcell.use(300))
user << "<span class='notice'>Your jackhammer doesn't have enough power to break through that wall.</span>"
D.update_charge()
return
D.update_charge()
D.playDigSound()
dismantle(user)
/obj/structure/falsewall/proc/dismantle(mob/user)
+20 -8
View File
@@ -39,9 +39,15 @@
new /obj/item/stack/sheet/metal(get_turf(src))
qdel(src)
else if(istype(W, /obj/item/weapon/pickaxe/drill/diamonddrill))
user << "<span class='notice'>You drill through the girder!</span>"
else if(istype(W, /obj/item/weapon/pickaxe/drill/jackhammer))
var/obj/item/weapon/pickaxe/drill/jackhammer/D = W
if(!D.bcell.use(D.drillcost))
D.update_charge()
return
D.update_charge()
user << "<span class='notice'>You smash through the girder!</span>"
new /obj/item/stack/sheet/metal(get_turf(src))
D.playDigSound()
qdel(src)
else if(istype(W, /obj/item/weapon/screwdriver) && state == 2 && istype(src,/obj/structure/girder/reinforced))
@@ -273,12 +279,18 @@
transfer_fingerprints_to(R)
qdel(src)
else if(istype(W, /obj/item/weapon/pickaxe/drill/diamonddrill))
user << "<span class='notice'>You drill through the girder!</span>"
if(do_after(user, 5))
var/obj/effect/decal/remains/human/R = new (get_turf(src))
transfer_fingerprints_to(R)
qdel(src)
else if(istype(W, /obj/item/weapon/pickaxe/drill/jackhammer))
var/obj/item/weapon/pickaxe/drill/jackhammer/D = W
if(!D.bcell.use(D.drillcost))
D.update_charge()
return
D.update_charge()
user << "<span class='notice'>Your jackhammer smashes through the girder!</span>"
var/obj/effect/decal/remains/human/R = new (get_turf(src))
transfer_fingerprints_to(R)
D.playDigSound()
qdel(src)
/obj/structure/cultgirder/blob_act()
if(prob(40))
+12 -9
View File
@@ -54,15 +54,18 @@
"<span class='notice'>You slice apart the [name]!</span>")
Dismantle(1)
else if(istype(W, /obj/item/weapon/pickaxe/drill/diamonddrill))
user.visible_message("<span class='notice'>[user] begins to drill apart the [name]!</span>", \
"<span class='notice'>You begin to drill apart the [name]!</span>")
if(do_after(user,5))
if(!src.loc)
return
user.visible_message("<span class='notice'>[user] destroys the [name]!</span>", \
"<span class='notice'>You destroy the [name]!</span>")
qdel(src)
else if(istype(W, /obj/item/weapon/pickaxe/drill/jackhammer))
var/obj/item/weapon/pickaxe/drill/jackhammer/D = W
if(!D.bcell.use(D.drillcost))
D.update_charge()
return
D.update_charge()
if(!src.loc)
return
user.visible_message("<span class='notice'>[user] destroys the [name]!</span>", \
"<span class='notice'>You destroy the [name]!</span>")
D.playDigSound()
qdel(src)
else if(istype(W, /obj/item/weapon/weldingtool) && !anchored)
playsound(loc, 'sound/items/Welder.ogg', 40, 1)
@@ -99,4 +99,44 @@
visible_message("<span class='notice'>[usr] collapses \the [src.name].</span>")
new/obj/item/roller(get_turf(src))
qdel(src)
return
return
/obj/item/roller/robo //ROLLER ROBO DA!
name = "roller bed dock"
var/loaded = null
/obj/item/roller/robo/New()
loaded = new /obj/structure/stool/bed/roller(src)
desc = "A collapsed roller bed that can be ejected for emergency use. Must be collected or replaced after use."
..()
/obj/item/roller/robo/examine(mob/user)
..()
user << "The dock is [loaded ? "loaded" : "empty"]"
/obj/item/roller/robo/attack_self(mob/user)
if(loaded)
var/obj/structure/stool/bed/roller/R = loaded
R.loc = user.loc
user.visible_message("<span class='notice'>[user] deploys [loaded].</span>")
loaded = null
else
user << "<span class='warning'>The dock is empty!</span>"
/obj/item/roller/robo/afterattack(obj/target, mob/user , proximity)
if(istype(target,/obj/structure/stool/bed/roller))
if(!proximity)
return
if(loaded)
user << "<span class='notice'>You already have a roller bed docked!</span>"
return
var/obj/structure/stool/bed/roller/R = target
if(R.buckled_mob)
R.user_unbuckle_mob(user)
loaded = target
target.loc = src
user.visible_message("<span class='notice'>[user] collects [loaded].</span>")
..()
@@ -41,6 +41,7 @@
dir = buckled_mob.dir
return 0
buckled_mob.buckled = src //Restoring
handle_layer()
return 1
/obj/structure/stool/bed/chair/proc/handle_layer()