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:
Steelpoint
2015-01-06 12:17:29 +08:00
263 changed files with 15857 additions and 15818 deletions
+1 -1
View File
@@ -791,7 +791,7 @@ steam.start() -- spawns the effect
spawn(3 + metal*3)
process()
spawn(120)
processing_objects.Remove(src)
SSobj.processing.Remove(src)
sleep(30)
if(metal)
+2 -2
View File
@@ -24,10 +24,10 @@
/obj/effect/forcefield/mime/New()
..()
last_process = world.time
processing_objects.Add(src)
SSobj.processing.Add(src)
/obj/effect/forcefield/mime/process()
timeleft -= (world.time - last_process)
if(timeleft <= 0)
processing_objects.Remove(src)
SSobj.processing.Remove(src)
qdel(src)
-4
View File
@@ -13,10 +13,6 @@
landmarks_list += src
switch(name) //some of these are probably obsolete
if("shuttle")
shuttle_z = z
qdel(src)
return
if("monkey")
monkeystart += loc
qdel(src)
+2 -2
View File
@@ -81,7 +81,7 @@
/obj/effect/spider/eggcluster/New()
pixel_x = rand(3,-3)
pixel_y = rand(3,-3)
processing_objects.Add(src)
SSobj.processing.Add(src)
/obj/effect/spider/eggcluster/process()
amount_grown += rand(0,2)
@@ -109,7 +109,7 @@
/obj/effect/spider/spiderling/New()
pixel_x = rand(6,-6)
pixel_y = rand(6,-6)
processing_objects.Add(src)
SSobj.processing.Add(src)
/obj/effect/spider/spiderling/Bump(atom/user)
if(istype(user, /obj/structure/table))
+2 -14
View File
@@ -72,13 +72,8 @@ proc/explosion(turf/epicenter, devastation_range, heavy_impact_range, light_impa
far_volume += (dist <= far_dist * 0.5 ? 50 : 0) // add 50 volume if the mob is pretty close to the explosion
M.playsound_local(epicenter, 'sound/effects/explosionfar.ogg', far_volume, 1, frequency, falloff = 5)
var/lighting_controller_was_processing = lighting_controller.processing //Pause the lighting updates for a bit
lighting_controller.processing = 0
// var/powernet_rebuild_was_deferred_already = defer_powernet_rebuild
// if(defer_powernet_rebuild != 2)
// defer_powernet_rebuild = 1
//postpone light processing for a bit
SSlighting.postpone()
if(heavy_impact_range > 1)
var/datum/effect/system/explosion/E = new/datum/effect/system/explosion()
@@ -121,13 +116,6 @@ proc/explosion(turf/epicenter, devastation_range, heavy_impact_range, light_impa
if(Array)
Array.sense_explosion(x0,y0,z0,devastation_range,heavy_impact_range,light_impact_range,took,orig_dev_range,orig_heavy_range,orig_light_range)
sleep(8)
if(!lighting_controller.processing) lighting_controller.processing = lighting_controller_was_processing
// if(!powernet_rebuild_was_deferred_already)
// if(defer_powernet_rebuild != 2)
// defer_powernet_rebuild = 0
return 1
-1
View File
@@ -116,7 +116,6 @@
/area/centcom,
/area/asteroid,
/area/tdome,
/area/syndicate_station,
/area/wizard_station,
/area/prison
)
+1 -1
View File
@@ -54,7 +54,7 @@
for(var/mob/O in viewers(usr, null))
O.show_message(flavor_text, 1)
SetLuminosity(CANDLE_LUMINOSITY)
processing_objects.Add(src)
SSobj.processing.Add(src)
/obj/item/candle/process()
+18 -4
View File
@@ -561,15 +561,29 @@ Code:
menu = "<h4><img src=pda_crate.png> Supply Record Interlink</h4>"
menu += "<BR><B>Supply shuttle</B><BR>"
menu += "Location: [supply_shuttle.moving ? "Moving to station ([supply_shuttle.eta] Mins.)":supply_shuttle.at_station ? "Station":"Dock"]<BR>"
menu += "Current approved orders: <BR><ol>"
for(var/S in supply_shuttle.shoppinglist)
menu += "Location: "
switch(SSshuttle.supply.mode)
if(SHUTTLE_CALL)
menu += "Moving to "
if(SSshuttle.supply.z != ZLEVEL_STATION)
menu += "station"
else
menu += "centcomm"
menu += " ([SSshuttle.supply.timeLeft(600)] Mins)"
else
menu += "At "
if(SSshuttle.supply.z != ZLEVEL_STATION)
menu += "centcomm"
else
menu += "station"
menu += "<BR>Current approved orders: <BR><ol>"
for(var/S in SSshuttle.shoppinglist)
var/datum/supply_order/SO = S
menu += "<li>#[SO.ordernum] - [SO.object.name] approved by [SO.orderedby] [SO.comment ? "([SO.comment])":""]</li>"
menu += "</ol>"
menu += "Current requests: <BR><ol>"
for(var/S in supply_shuttle.requestlist)
for(var/S in SSshuttle.requestlist)
var/datum/supply_order/SO = S
menu += "<li>#[SO.ordernum] - [SO.object.name] requested by [SO.orderedby]</li>"
menu += "</ol><font size=\"-3\">Upgrade NOW to Space Parts & Space Vendors PLUS for full remote order control and inventory management."
@@ -42,7 +42,7 @@
/obj/item/device/camera_bug/New()
..()
processing_objects += src
SSobj.processing += src
/obj/item/device/camera_bug/Destroy()
if(expansion)
@@ -214,7 +214,7 @@ obj/item/device/flashlight/lamp/bananalamp
turn_off()
if(!fuel)
icon_state = "[initial(icon_state)]-empty"
processing_objects -= src
SSobj.processing -= src
/obj/item/device/flashlight/flare/proc/turn_off()
on = 0
@@ -248,7 +248,7 @@ obj/item/device/flashlight/lamp/bananalamp
user.visible_message("<span class='notice'>[user] lights \the [src].</span>", "<span class='notice'>You light \the [src]!</span>")
force = on_damage
damtype = "fire"
processing_objects += src
SSobj.processing += src
/obj/item/device/flashlight/flare/torch
name = "torch"
@@ -283,10 +283,10 @@ obj/item/device/flashlight/lamp/bananalamp
/obj/item/device/flashlight/emp/New()
..()
processing_objects.Add(src)
SSobj.processing.Add(src)
/obj/item/device/flashlight/emp/Destroy()
processing_objects.Remove(src)
SSobj.processing.Remove(src)
..()
/obj/item/device/flashlight/emp/process()
@@ -186,7 +186,7 @@
if(energy <= max_energy)
if(!recharging)
recharging = 1
processing_objects.Add(src)
SSobj.processing.Add(src)
if(energy <= 0)
user << "<span class='warning'>You've overused the battery of [src], now it needs time to recharge!</span>"
recharge_locked = 1
+2 -2
View File
@@ -28,11 +28,11 @@
/obj/item/device/multitool/ai_detect/New()
..()
processing_objects += src
SSobj.processing += src
/obj/item/device/multitool/ai_detect/Destroy()
processing_objects -= src
SSobj.processing -= src
..()
/obj/item/device/multitool/ai_detect/process()
+4 -4
View File
@@ -34,20 +34,20 @@
if(DISCONNECTED)
attached = null
if(mode == OPERATING)
processing_objects.Remove(src)
SSobj.processing.Remove(src)
anchored = 0
if(CLAMPED_OFF)
if(!attached)
return
if(mode == OPERATING)
processing_objects.Remove(src)
SSobj.processing.Remove(src)
anchored = 1
if(OPERATING)
if(!attached)
return
processing_objects.Add(src)
SSobj.processing.Add(src)
anchored = 1
mode = value
@@ -140,6 +140,6 @@
playsound(src, 'sound/effects/screech.ogg', 100, 1, 1)
if(power_drained >= max_power)
processing_objects.Remove(src)
SSobj.processing.Remove(src)
explosion(src.loc, 3,6,9,12)
qdel(src)
@@ -12,10 +12,10 @@
/obj/item/device/radio/intercom/New()
..()
processing_objects += src
SSobj.processing += src
/obj/item/device/radio/intercom/Destroy()
processing_objects -= src
SSobj.processing -= src
..()
/obj/item/device/radio/intercom/attack_ai(mob/user as mob)
+3 -3
View File
@@ -21,8 +21,8 @@
user << "<span class='info'>\icon[src]Error: Device out of range of station communication arrays.</span>"
return
if(emergency_shuttle.location==0)
if (emergency_shuttle.online)
switch(SSshuttle.emergency.mode)
if(SHUTTLE_CALL)
recalling = 1
loc << "<span class='info'>\icon[src]Generating shuttle recall order with codes retrieved from last call signal...</span>"
sleep(rand(10,30))
@@ -33,7 +33,7 @@
recalling = 0
log_game("[key_name(user)] has recalled the shuttle with a recaller.")
message_admins("[key_name_admin(user)] has recalled the shuttle with a recaller.", 1)
if(!cancel_call_proc(user))
if(!SSshuttle.cancelEvac(user))
loc << "<span class='info'>\icon[src]No response recieved. Emergency shuttle cannot be recalled at this time.</span>"
return
+2 -2
View File
@@ -25,12 +25,12 @@ MASS SPECTROMETER
icon_state = copytext(icon_state, 1, length(icon_state))+"[on]"
if(on)
processing_objects.Add(src)
SSobj.processing.Add(src)
/obj/item/device/t_scanner/process()
if(!on)
processing_objects.Remove(src)
SSobj.processing.Remove(src)
return null
scan()
+13 -6
View File
@@ -22,6 +22,7 @@ RCD
origin_tech = "engineering=4;materials=2"
var/datum/effect/effect/system/spark_spread/spark_system
var/matter = 0
var/max_matter = 100
var/working = 0
var/mode = 1
var/canRwall = 0
@@ -92,7 +93,7 @@ RCD
/obj/item/weapon/rcd/New()
desc = "A RCD. It currently holds [matter]/100 matter-units."
desc = "A RCD. It currently holds [matter]/[max_matter] matter-units."
src.spark_system = new /datum/effect/effect/system/spark_spread
spark_system.set_up(5, 0, src)
spark_system.attach(src)
@@ -102,15 +103,15 @@ RCD
/obj/item/weapon/rcd/attackby(obj/item/weapon/W, mob/user)
..()
if(istype(W, /obj/item/weapon/rcd_ammo))
if((matter + 20) > 100)
if((matter + 20) > max_matter)
user << "<span class='notice'>The RCD cant hold any more matter-units.</span>"
return
user.drop_item()
qdel(W)
matter += 20
playsound(src.loc, 'sound/machines/click.ogg', 50, 1)
user << "<span class='notice'>The RCD now holds [matter]/30 matter-units.</span>"
desc = "A RCD. It currently holds [matter]/30 matter-units."
user << "<span class='notice'>The RCD now holds [matter]/[max_matter] matter-units.</span>"
desc = "A RCD. It currently holds [matter]/[max_matter] matter-units."
return
@@ -174,7 +175,13 @@ RCD
if(2)
if(istype(A, /turf/simulated/floor))
if(checkResource(10, user))
if(!locate(/obj/machinery/door) in A)
var/door_check = 1
for(var/obj/machinery/door/D in A)
if(!D.sub_door)
door_check = 0
break
if(door_check)
user << "Building Airlock..."
playsound(src.loc, 'sound/machines/click.ogg', 50, 1)
if(do_after(user, 50))
@@ -237,7 +244,7 @@ RCD
if(matter < amount)
return 0
matter -= amount
desc = "A RCD. It currently holds [matter]/30 matter-units."
desc = "A RCD. It currently holds [matter]/[max_matter] matter-units."
return 1
/obj/item/weapon/rcd/proc/checkResource(var/amount, var/mob/user)
@@ -50,7 +50,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
name = "lit match"
desc = "A match. This one is lit."
attack_verb = list("burnt","singed")
processing_objects.Add(src)
SSobj.processing.Add(src)
update_icon()
return
@@ -64,7 +64,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
name = "burnt match"
desc = "A match. This one has seen better days."
attack_verb = null
processing_objects.Remove(src)
SSobj.processing.Remove(src)
/obj/item/weapon/match/dropped(mob/user as mob)
matchburnout()
@@ -180,7 +180,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
if(flavor_text)
var/turf/T = get_turf(src)
T.visible_message(flavor_text)
processing_objects.Add(src)
SSobj.processing.Add(src)
//can't think of any other way to update the overlays :<
if(ismob(loc))
@@ -209,7 +209,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
smoketime--
if(smoketime < 1)
new type_butt(location)
processing_objects.Remove(src)
SSobj.processing.Remove(src)
if(ismob(loc))
M << "<span class='notice'>Your [name] goes out.</span>"
M.unEquip(src, 1) //un-equip it so the overlays can update //Force the un-equip so the overlays update
@@ -228,7 +228,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
var/turf/T = get_turf(src)
new type_butt(T)
new /obj/effect/decal/cleanable/ash(T)
processing_objects.Remove(src)
SSobj.processing.Remove(src)
qdel(src)
return ..()
@@ -354,7 +354,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
M.update_inv_wear_mask(0)
packeditem = 0
name = "empty [initial(name)]"
processing_objects.Remove(src)
SSobj.processing.Remove(src)
return
if(location)
location.hotspot_expose(700, 5)
@@ -391,7 +391,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
lit = 0
icon_state = icon_off
item_state = icon_off
processing_objects.Remove(src)
SSobj.processing.Remove(src)
return
if(!lit && smoketime > 0)
user << "<span class='notice'>You empty [src] onto [location].</span>"
@@ -470,7 +470,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
user.visible_message("<span class='notice'>After a few attempts, [user] manages to light [src], they however burn their finger in the process.</span>")
user.AddLuminosity(1)
processing_objects.Add(src)
SSobj.processing.Add(src)
else
lit = 0
icon_state = icon_off
@@ -484,7 +484,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
user.visible_message("<span class='notice'>[user] quietly shuts off [src].")
user.AddLuminosity(-1)
processing_objects.Remove(src)
SSobj.processing.Remove(src)
else
return ..()
return
+1 -1
View File
@@ -76,7 +76,7 @@
"<span class='notice'>You throw [src]. It lands on [result]. [comment]</span>", \
"<span class='notice'>You hear [src] landing on [result]. [comment]</span>")
else if(src.throwing == 0) //Dice was thrown and is coming to rest
src.loc.visible_message("<span class='notice'>[src] rolls to a stop, landing on [result]. [comment]</span>")
visible_message("<span class='notice'>[src] rolls to a stop, landing on [result]. [comment]</span>")
/obj/item/weapon/dice/d4/Crossed(var/mob/living/carbon/human/H)
if(istype(H) && !H.shoes)
@@ -33,7 +33,7 @@
/obj/item/weapon/flamethrower/process()
if(!lit)
processing_objects.Remove(src)
SSobj.processing.Remove(src)
return null
var/turf/location = loc
if(istype(location, /mob/))
@@ -140,7 +140,7 @@
if(!status) return
lit = !lit
if(lit)
processing_objects.Add(src)
SSobj.processing.Add(src)
if(href_list["amount"])
throw_amount = throw_amount + text2num(href_list["amount"])
throw_amount = max(50, min(5000, throw_amount))
@@ -189,7 +189,7 @@
//Burn it based on transfered gas
target.hotspot_expose((ptank.air_contents.temperature*2) + 380,500)
//location.hotspot_expose(1000,500,1)
air_master.add_to_active(target, 0)
SSair.add_to_active(target, 0)
return
+2
View File
@@ -21,6 +21,8 @@
obj/item/weapon/mop/proc/clean(turf/simulated/A)
if(reagents.has_reagent("water", 1) || reagents.has_reagent("holywater", 1))
A.clean_blood()
var/turf/simulated/floor/F = A
F.dirt = 0
for(var/obj/effect/O in A)
if(istype(O,/obj/effect/decal/cleanable) || istype(O,/obj/effect/overlay))
qdel(O)
@@ -17,11 +17,11 @@
/obj/item/weapon/twohanded/singularityhammer/New()
..()
processing_objects.Add(src)
SSobj.processing.Add(src)
/obj/item/weapon/twohanded/singularityhammer/Destroy()
processing_objects.Remove(src)
SSobj.processing.Remove(src)
..()
@@ -24,7 +24,7 @@
src.air_contents.volume = volume //liters
src.air_contents.temperature = T20C
processing_objects.Add(src)
SSobj.processing.Add(src)
return
@@ -32,7 +32,7 @@
if(air_contents)
del(air_contents)
processing_objects.Remove(src)
SSobj.processing.Remove(src)
..()
+2 -2
View File
@@ -204,7 +204,7 @@
force = 3
damtype = "brute"
update_icon()
processing_objects.Remove(src)
SSobj.processing.Remove(src)
return
//Welders left on now use up fuel, but lets not have them run out quite that fast
if(1)
@@ -306,7 +306,7 @@
damtype = "fire"
hitsound = 'sound/items/welder.ogg'
icon_state = "welder1"
processing_objects.Add(src)
SSobj.processing.Add(src)
else
user << "<span class='notice'>You need more fuel.</span>"
welding = 0
+1 -1
View File
@@ -237,7 +237,7 @@ obj/item/weapon/twohanded/
/obj/item/weapon/twohanded/dualsaber/wield(mob/living/carbon/M) //Specific wield () hulk checks due to reflect_chance var for balance issues and switches hitsounds.
if(istype(M))
if(M.dna.check_mutation(HULK))
M << "<span class='warning'>You lack the grace to wield this to its full extent.</span>"
M << "<span class='warning'>You lack the grace to wield this.</span>"
return
..()
hitsound = 'sound/weapons/blade1.ogg'
+2 -2
View File
@@ -11,12 +11,12 @@
var/force = 0
/obj/proc/process()
processing_objects.Remove(src)
SSobj.processing.Remove(src)
return 0
/obj/Destroy()
if(!istype(src, /obj/machinery))
processing_objects.Remove(src) // TODO: Have a processing bitflag to reduce on unnecessary loops through the processing lists
SSobj.processing.Remove(src) // TODO: Have a processing bitflag to reduce on unnecessary loops through the processing lists
..()
/obj/assume_air(datum/gas_mixture/giver)
@@ -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.", \
+5 -1
View File
@@ -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()
+2
View File
@@ -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
+2
View File
@@ -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
+74 -11
View File
@@ -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.
+8 -21
View File
@@ -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