mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-27 23:27:34 +01:00
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:
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user