mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-26 06:29:23 +01:00
Merge branch 'master' of https://github.com/tgstation/-tg-station into EmergencyResponseTeam
Conflicts: _maps/map_files/generic/z2.dmm code/_globalvars/lists/mapping.dm
This commit is contained in:
@@ -46,7 +46,7 @@
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
processing_objects.Add(src)
|
||||
SSobj.processing.Add(src)
|
||||
..()
|
||||
|
||||
/obj/structure/closet/statue/process()
|
||||
@@ -58,7 +58,7 @@
|
||||
M.setOxyLoss(intialOxy)
|
||||
if (timer <= 0)
|
||||
dump_contents()
|
||||
processing_objects.Remove(src)
|
||||
SSobj.processing.Remove(src)
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/closet/statue/dump_contents()
|
||||
|
||||
@@ -461,7 +461,13 @@ obj/structure/door_assembly/New()
|
||||
return
|
||||
|
||||
else if(istype(W, /obj/item/weapon/wrench) && !anchored )
|
||||
if(!locate(/obj/machinery/door) in loc)
|
||||
var/door_check = 1
|
||||
for(var/obj/machinery/door/D in loc)
|
||||
if(!D.sub_door)
|
||||
door_check = 0
|
||||
break
|
||||
|
||||
if(door_check)
|
||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1)
|
||||
user.visible_message("<span class='warning'>[user] secures the airlock assembly to the floor.</span>", \
|
||||
"You start to secure the airlock assembly to the floor.", \
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
if(ishuman(user))
|
||||
var/mob/living/carbon/human/H = user
|
||||
|
||||
var/choice = input(user, "Underwear or Undershirt?", "Changing") as null|anything in list("Underwear","Undershirt")
|
||||
var/choice = input(user, "Underwear, Undershirt, or Socks?", "Changing") as null|anything in list("Underwear","Undershirt","Socks")
|
||||
|
||||
if(!Adjacent(user))
|
||||
return
|
||||
@@ -26,6 +26,10 @@
|
||||
var/new_undershirt = input(user, "Select your undershirt", "Changing") as null|anything in undershirt_list
|
||||
if(new_undershirt)
|
||||
H.undershirt = new_undershirt
|
||||
if("Socks")
|
||||
var/new_socks = input(user, "Select your socks", "Changing") as null|anything in socks_list
|
||||
if(new_socks)
|
||||
H.socks= new_socks
|
||||
|
||||
add_fingerprint(H)
|
||||
H.update_body()
|
||||
@@ -196,6 +196,8 @@
|
||||
health -= W.force * 0.1
|
||||
else if(!shock(user, 70))
|
||||
switch(W.damtype)
|
||||
if(STAMINA)
|
||||
return
|
||||
if(BURN)
|
||||
playsound(loc, 'sound/items/welder.ogg', 80, 1)
|
||||
else
|
||||
|
||||
@@ -58,6 +58,8 @@
|
||||
|
||||
/obj/structure/mirror/attackby(obj/item/I as obj, mob/living/user as mob)
|
||||
user.do_attack_animation(src)
|
||||
if(I.damtype == STAMINA)
|
||||
return
|
||||
if(shattered)
|
||||
playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1)
|
||||
return
|
||||
|
||||
@@ -7,25 +7,81 @@
|
||||
icon = 'icons/obj/statue.dmi'
|
||||
icon_state = ""
|
||||
density = 1
|
||||
anchored = 1
|
||||
anchored = 0
|
||||
var/hardness = 1
|
||||
var/oreAmount = 7
|
||||
var/mineralType = "metal"
|
||||
var/last_event = 0
|
||||
var/active = null
|
||||
var/spam_flag = 0
|
||||
|
||||
/obj/structure/statue/Destroy()
|
||||
density = 0
|
||||
..()
|
||||
|
||||
/obj/structure/statue/attackby(obj/item/weapon/W, mob/user)
|
||||
hardness -= W.force/100
|
||||
user << "You hit the [name] with your [W.name]!"
|
||||
CheckHardness()
|
||||
/obj/structure/statue/attackby(obj/item/weapon/W, mob/living/user as mob)
|
||||
add_fingerprint(user)
|
||||
user.changeNext_move(CLICK_CD_MELEE)
|
||||
if(istype(W, /obj/item/weapon/wrench))
|
||||
if(anchored)
|
||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1)
|
||||
user.visible_message("<span class='notice'>[user] is loosening the [name]'s bolts...</span>", \
|
||||
"<span class='notice'>You are loosening the [name]'s bolts...</span>")
|
||||
if(do_after(user,40))
|
||||
if(!src) return
|
||||
if(!anchored) return
|
||||
user.visible_message("<span class='notice'>[user] loosened the [name]'s bolts!</span>", \
|
||||
"<span class='notice'>You loosened the [name]'s bolts!</span>")
|
||||
anchored = 0
|
||||
else if(!anchored)
|
||||
if (!istype(src.loc, /turf/simulated/floor))
|
||||
user.visible_message("<span class='danger'>A floor must be present to secure the [name]!</span>")
|
||||
return
|
||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1)
|
||||
user.visible_message("<span class='notice'>[user] is securing the [name]'s bolts...</span>", \
|
||||
"<span class='notice'>You are securing the [name]'s bolts...</span>")
|
||||
if(do_after(user, 40))
|
||||
if(!src) return
|
||||
if(anchored) return
|
||||
user.visible_message("<span class='notice'>[user] has secured the [name]'s bolts!</span>", \
|
||||
"<span class='notice'>You have secured the [name]'s bolts!</span>")
|
||||
anchored = 1
|
||||
|
||||
/obj/structure/statue/attack_hand(mob/user)
|
||||
visible_message("<span class='notice'>[user] rubs some dust off from the [name]'s surface.</span>")
|
||||
else if(istype(W, /obj/item/weapon/pickaxe/plasmacutter))
|
||||
user.visible_message("<span class='notice'>[user] is slicing apart the [name]...</span>", \
|
||||
"<span class='notice'>You are slicing apart the [name]...</span>")
|
||||
if(do_after(user,30))
|
||||
if(!src.loc) return
|
||||
user.visible_message("<span class='notice'>[user] slices apart the [name]!</span>", \
|
||||
"<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/weldingtool))
|
||||
if(!anchored)
|
||||
user.visible_message("<span class='notice'>[user] is slicing apart the [name]...</span>", \
|
||||
"<span class='notice'>You are slicing apart the [name]...</span>")
|
||||
if(do_after(user, 40))
|
||||
if(!src.loc) return
|
||||
user.visible_message("<span class='notice'>[user] slices apart the [name]!</span>", \
|
||||
"<span class='notice'>You slice apart the [name]!</span>")
|
||||
Dismantle(1)
|
||||
|
||||
else
|
||||
hardness -= W.force/100
|
||||
..()
|
||||
CheckHardness()
|
||||
|
||||
/obj/structure/statue/attack_hand(mob/living/user as mob)
|
||||
user.changeNext_move(CLICK_CD_MELEE)
|
||||
add_fingerprint(user)
|
||||
user.visible_message("<span class='notice'>[user] rubs some dust off from the [name]'s surface.</span>", \
|
||||
"<span class='notice'>You rub some dust off from the [name]'s surface.</span>")
|
||||
|
||||
/obj/structure/statue/CanAtmosPass()
|
||||
return !density
|
||||
@@ -83,6 +139,8 @@
|
||||
hardness = 3
|
||||
luminosity = 2
|
||||
mineralType = "uranium"
|
||||
var/last_event = 0
|
||||
var/active = null
|
||||
|
||||
/obj/structure/statue/uranium/nuke
|
||||
name = "Statue of a Nuclear Fission Explosive"
|
||||
@@ -100,6 +158,7 @@
|
||||
|
||||
/obj/structure/statue/uranium/Bumped(atom/user)
|
||||
radiate()
|
||||
..()
|
||||
|
||||
/obj/structure/statue/uranium/attack_hand(mob/user)
|
||||
radiate()
|
||||
@@ -107,6 +166,7 @@
|
||||
|
||||
/obj/structure/statue/uranium/attack_paw(mob/user)
|
||||
radiate()
|
||||
..()
|
||||
|
||||
/obj/structure/statue/uranium/proc/radiate()
|
||||
if(!active)
|
||||
@@ -238,6 +298,7 @@
|
||||
hardness = 3
|
||||
mineralType = "bananium"
|
||||
desc = "A bananium statue with a small engraving:'HOOOOOOONK'."
|
||||
var/spam_flag = 0
|
||||
|
||||
/obj/structure/statue/bananium/clown
|
||||
name = "Statue of a clown"
|
||||
@@ -245,6 +306,7 @@
|
||||
|
||||
/obj/structure/statue/bananium/Bumped(atom/user)
|
||||
honk()
|
||||
..()
|
||||
|
||||
/obj/structure/statue/bananium/attackby(obj/item/weapon/W, mob/user)
|
||||
honk()
|
||||
@@ -256,9 +318,10 @@
|
||||
|
||||
/obj/structure/statue/bananium/attack_paw(mob/user)
|
||||
honk()
|
||||
..()
|
||||
|
||||
/obj/structure/statue/bananium/proc/honk()
|
||||
if(spam_flag == 0)
|
||||
if(!spam_flag)
|
||||
spam_flag = 1
|
||||
playsound(src.loc, 'sound/items/bikehorn.ogg', 50, 1)
|
||||
spawn(20)
|
||||
|
||||
@@ -55,6 +55,8 @@
|
||||
if(M.environment_smash)
|
||||
new /obj/item/stack/sheet/metal(src.loc)
|
||||
qdel(src)
|
||||
return
|
||||
manual_unbuckle(M)
|
||||
|
||||
/obj/structure/stool/bed/MouseDrop_T(mob/M as mob, mob/user as mob)
|
||||
if(!istype(M)) return
|
||||
@@ -112,8 +114,8 @@
|
||||
if ( !ismob(M) || (get_dist(src, user) > 1) || (M.loc != src.loc) || user.restrained() || user.lying || user.stat || M.buckled || istype(user, /mob/living/silicon/pai) || M.anchored)
|
||||
return
|
||||
|
||||
if (istype(M, /mob/living/carbon/slime))
|
||||
user << "The [M] is too squishy to buckle in."
|
||||
if (istype(M, /mob/living/carbon/slime) || istype(M, /mob/living/simple_animal/slime))
|
||||
user << "\The [M] is too squishy to buckle in."
|
||||
return
|
||||
|
||||
unbuckle()
|
||||
|
||||
@@ -19,10 +19,10 @@
|
||||
|
||||
/obj/structure/transit_tube/station/New()
|
||||
..()
|
||||
processing_objects += src
|
||||
SSobj.processing += src
|
||||
|
||||
/obj/structure/transit_tube/station/Destroy()
|
||||
processing_objects -= src
|
||||
SSobj.processing -= src
|
||||
..()
|
||||
|
||||
// Stations which will send the tube in the opposite direction after their stop.
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
var/state = 0
|
||||
var/reinf = 0
|
||||
var/disassembled = 0
|
||||
var/shuttlew = 0
|
||||
var/wtype = "glass"
|
||||
var/fulltile = 0
|
||||
var/obj/item/stack/rods/storedrods
|
||||
var/obj/item/weapon/shard/storedshard
|
||||
@@ -28,15 +28,8 @@
|
||||
storedshard = new/obj/item/weapon/shard(src)
|
||||
ini_dir = dir
|
||||
if(reinf)
|
||||
icon_state = "rwindow"
|
||||
desc = "A reinforced window."
|
||||
name = "reinforced window"
|
||||
state = 2*anchored
|
||||
if(opacity)
|
||||
icon_state = "twindow"
|
||||
storedrods = new/obj/item/stack/rods(src)
|
||||
else
|
||||
icon_state = "window"
|
||||
|
||||
air_update_turf(1)
|
||||
update_nearby_icons()
|
||||
@@ -408,17 +401,10 @@
|
||||
if(anchored)
|
||||
for(var/obj/structure/window/W in orange(src,1))
|
||||
if(W.anchored && W.density && W.fulltile) //Only counts anchored, not-destroyed fill-tile windows.
|
||||
if(abs(x-W.x)-abs(y-W.y) ) //doesn't count windows, placed diagonally to src
|
||||
junction |= get_dir(src,W)
|
||||
if(opacity)
|
||||
icon_state = "twindow[junction]"
|
||||
else
|
||||
if(shuttlew)
|
||||
icon_state = "swindow[junction]"
|
||||
else if(reinf)
|
||||
icon_state = "rwindow[junction]"
|
||||
else
|
||||
icon_state = "window[junction]"
|
||||
if(src.wtype == W.wtype)
|
||||
if(abs(x-W.x)-abs(y-W.y) ) //doesn't count windows, placed diagonally to src
|
||||
junction |= get_dir(src,W)
|
||||
icon_state = "[initial(icon_state)][junction]"
|
||||
|
||||
overlays.Cut()
|
||||
var/ratio = health / maxhealth
|
||||
@@ -466,9 +452,10 @@
|
||||
|
||||
/obj/structure/window/shuttle
|
||||
name = "shuttle window"
|
||||
desc = "A strong, air-locked pod window that is extremely difficult to destroy."
|
||||
desc = "A reinforced, air-locked pod window."
|
||||
icon_state = "swindow"
|
||||
dir = 5
|
||||
maxhealth = 100
|
||||
shuttlew = 1
|
||||
wtype = "shuttle"
|
||||
fulltile = 1
|
||||
reinf = 1
|
||||
Reference in New Issue
Block a user