Merge tgstation13 r4570 into bs12_with_tgport

Conflicts:
	baystation12.dme
	code/defines/obj.dm
	code/defines/procs/helpers.dm
	code/defines/turf.dm
	code/game/gamemodes/changeling/modularchangling.dm
	code/game/gamemodes/cult/cult_structures.dm
	code/game/gamemodes/events.dm
	code/game/machinery/telecomms/machine_interactions.dm
	code/game/master_controller.dm
	code/game/objects/items/blueprints.dm
	code/game/objects/items/devices/uplinks.dm
	code/game/objects/items/item.dm
	code/game/objects/items/weapons/gift_wrappaper.dm
	code/game/objects/items/weapons/wires.dm
	code/game/objects/weapons.dm
	code/game/turfs/turf.dm
	code/modules/clothing/head/hardhat.dm
	code/modules/mining/mine_items.dm
	code/modules/mining/mine_turfs.dm
	code/modules/mob/living/silicon/robot/life.dm
	code/modules/mob/mob_defines.dm
	code/modules/mob/new_player/login.dm
	code/modules/paperwork/pen.dm
	code/modules/paperwork/stamps.dm
	code/unused/toilets.dm
	html/changelog.html
	icons/effects/alert.dmi

Signed-off-by: Cael_Aislinn <cael_aislinn@yahoo.com.au>
This commit is contained in:
Cael_Aislinn
2012-08-28 19:57:11 +10:00
269 changed files with 14389 additions and 13349 deletions

View File

@@ -1,37 +1,3 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32
/proc/isassembly(O)
if(istype(O, /obj/item/device/assembly))
return 1
return 0
/proc/isigniter(O)
if(istype(O, /obj/item/device/assembly/igniter))
return 1
return 0
/proc/isinfared(O)
if(istype(O, /obj/item/device/assembly/infra))
return 1
return 0
/proc/isprox(O)
if(istype(O, /obj/item/device/assembly/prox_sensor))
return 1
return 0
/proc/issignaler(O)
if(istype(O, /obj/item/device/assembly/signaler))
return 1
return 0
/proc/istimer(O)
if(istype(O, /obj/item/device/assembly/timer))
return 1
return 0
/obj/item/device/assembly
name = "assembly"
desc = "A small electronic device that should never exist."
@@ -49,9 +15,7 @@
origin_tech = "magnets=1"
var/secured = 1
var/small_icon_state_left = null
var/small_icon_state_right = null
var/list/small_icon_state_overlays = null
var/list/attached_overlays = null
var/obj/item/device/assembly_holder/holder = null
var/cooldown = 0//To prevent spam
var/wires = WIRE_RECEIVE | WIRE_PULSE
@@ -130,7 +94,7 @@
attach_assembly(var/obj/item/device/assembly/A, var/mob/user)
holder = new/obj/item/device/assembly_holder(get_turf(src))
if(holder.attach(A,src,user))
user.show_message("\blue You attach the [A.name] to the [name]!")
user << "\blue You attach \the [A] to \the [src]!"
return 1
return 0
@@ -143,9 +107,9 @@
return
if(isscrewdriver(W))
if(toggle_secure())
user.show_message("\blue The [name] is ready!")
user << "\blue \The [src] is ready!"
else
user.show_message("\blue The [name] can now be attached!")
user << "\blue \The [src] can now be attached!"
return
..()
return
@@ -161,9 +125,9 @@
..()
if((in_range(src, usr) || loc == usr))
if(secured)
usr.show_message("The [name] is ready!")
usr << "\The [src] is ready!"
else
usr.show_message("The [name] can be attached!")
usr << "\The [src] can be attached!"
return
@@ -177,26 +141,6 @@
interact(mob/user as mob)
return //HTML MENU FOR WIRES GOES HERE
/*
Name: IsAssemblyHolder
Desc: If true is an object that can hold an assemblyholder object
*/
/obj/proc/IsAssemblyHolder()
return 0
/*
proc
Process_Activation(var/obj/D, var/normal = 1, var/special = 1)
*/
/*
Name: IsSpecialAssembly
Desc: If true is an object that can be attached to an assembly holder but is a special thing like a plasma can or door
*/
/obj/proc/IsSpecialAssembly()
return 0
/*
var/small_icon_state = null//If this obj will go inside the assembly use this for icons
var/list/small_icon_state_overlays = null//Same here

View File

@@ -0,0 +1,44 @@
/proc/isassembly(O)
if(istype(O, /obj/item/device/assembly))
return 1
return 0
/proc/isigniter(O)
if(istype(O, /obj/item/device/assembly/igniter))
return 1
return 0
/proc/isinfared(O)
if(istype(O, /obj/item/device/assembly/infra))
return 1
return 0
/proc/isprox(O)
if(istype(O, /obj/item/device/assembly/prox_sensor))
return 1
return 0
/proc/issignaler(O)
if(istype(O, /obj/item/device/assembly/signaler))
return 1
return 0
/proc/istimer(O)
if(istype(O, /obj/item/device/assembly/timer))
return 1
return 0
/*
Name: IsSpecialAssembly
Desc: If true is an object that can be attached to an assembly holder but is a special thing like a plasma can or door
*/
/obj/proc/IsSpecialAssembly()
return 0
/*
Name: IsAssemblyHolder
Desc: If true is an object that can hold an assemblyholder object
*/
/obj/proc/IsAssemblyHolder()
return 0

View File

@@ -1,6 +1,5 @@
/obj/item/device/assembly_holder
name = "Assembly"
desc = "Holds various devices"//Fix this by adding dynamic desc
icon = 'icons/obj/assemblies/new_assemblies.dmi'
icon_state = "holder"
item_state = "assembly"
@@ -44,7 +43,7 @@
D2.loc = src
a_left = D
a_right = D2
src.name = "[D.name] [D2.name] assembly"
name = "[D.name]-[D2.name] assembly"
update_icon()
return 1
@@ -52,8 +51,8 @@
attach_special(var/obj/O, var/mob/user)
if(!O) return
if(!O.IsSpecialAssembly()) return 0
/*
if(O:Attach_Holder())
/* if(O:Attach_Holder())
special_assembly = O
update_icon()
src.name = "[a_left.name] [a_right.name] [special_assembly.name] assembly"
@@ -62,15 +61,16 @@
update_icon()
src.overlays = null
overlays = null
if(a_left)
src.overlays += a_left:small_icon_state_left
for(var/O in a_left:small_icon_state_overlays)
src.overlays += text("[]_l", O)
overlays += "[initial(a_left.icon_state)]_left" //the initial() is probably unnecessary, but you just know
for(var/O in a_left.attached_overlays) //someone is gonna fuck around with the icon_state in the future
overlays += "[O]_l"
if(a_right)
src.overlays += a_right:small_icon_state_right
for(var/O in a_right:small_icon_state_overlays)
src.overlays += text("[]_r", O)
src.overlays += "[initial(a_right.icon_state)]_right"
for(var/O in a_right.attached_overlays)
overlays += "[O]_r"
/* if(special_assembly)
special_assembly.update_icon()
if(special_assembly:small_icon_state)
@@ -84,9 +84,9 @@
..()
if ((in_range(src, usr) || src.loc == usr))
if (src.secured)
usr.show_message("The [src.name] is ready!")
usr << "\The [src] is ready!"
else
usr.show_message("The [src.name] can be attached!")
usr << "\The [src] can be attached!"
return
@@ -123,15 +123,15 @@
attackby(obj/item/weapon/W as obj, mob/user as mob)
if(isscrewdriver(W))
if(!a_left || !a_right)
user.show_message("\red BUG:Assembly part missing, please report this!")
user << "\red BUG:Assembly part missing, please report this!"
return
a_left.toggle_secure()
a_right.toggle_secure()
secured = !secured
if(secured)
user.show_message("\blue The [src.name] is ready!")
user << "\blue \The [src] is ready!"
else
user.show_message("\blue The [src.name] can now be taken apart!")
user << "\blue \The [src] can now be taken apart!"
update_icon()
return
else if(W.IsSpecialAssembly())
@@ -145,7 +145,7 @@
src.add_fingerprint(user)
if(src.secured)
if(!a_left || !a_right)
user.show_message("\red Assembly part missing!")
user << "\red Assembly part missing!"
return
if(istype(a_left,a_right.type))//If they are the same type it causes issues due to window code
switch(alert("Which side would you like to use?",,"Left","Right"))

View File

@@ -1,6 +1,6 @@
/obj/item/device/assembly/igniter
name = "igniter"
desc = "A small electronic device able to ignite combustable substances. Does not function well as a lighter."
desc = "A small electronic device able to ignite combustable substances."
icon_state = "igniter"
m_amt = 500
g_amt = 50
@@ -8,8 +8,6 @@
origin_tech = "magnets=1"
secured = 1
small_icon_state_left = "igniter_left"
small_icon_state_right = "igniter_right"
activate()
@@ -20,8 +18,6 @@
attack_self(mob/user as mob)
activate()
add_fingerprint(user)
spawn( 5 )
activate()
return
return
return

View File

@@ -1,19 +1,17 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32
/obj/item/device/assembly/infra
name = "Infrared Beam"
name = "infrared emitter"
desc = "Emits a visible or invisible beam and is triggered when the beam is interrupted."
icon_state = "infrared_old"
icon_state = "infrared"
m_amt = 1000
g_amt = 500
w_amt = 100
origin_tech = "magnets=2"
secured = 0
small_icon_state_left = "infrared_left"
small_icon_state_right = "infrared_right"
var/scanning = 0
var/on = 0
var/visible = 0
var/obj/effect/beam/i_beam/first = null
@@ -23,7 +21,7 @@
activate()
if(!..()) return 0//Cooldown check
src.scanning = !src.scanning
on = !on
update_icon()
return 1
@@ -33,19 +31,19 @@
if(secured)
processing_objects.Add(src)
else
scanning = 0
if(src.first) del(src.first)
on = 0
if(first) del(first)
processing_objects.Remove(src)
update_icon()
return secured
update_icon()
src.overlays = null
src.small_icon_state_overlays = list()
if(scanning)
src.overlays += text("infrared_old2")
src.small_icon_state_overlays += text("infrared_on")
overlays = null
attached_overlays = list()
if(on)
overlays += "infrared_on"
attached_overlays += "infrared_on"
if(holder)
holder.update_icon()
@@ -53,23 +51,23 @@
process()//Old code
if(!scanning)
if(src.first)
del(src.first)
if(!on)
if(first)
del(first)
return
if((!( src.first ) && (src.secured && (istype(src.loc, /turf) || (src.holder && istype(src.holder.loc, /turf))))))
var/obj/effect/beam/i_beam/I = new /obj/effect/beam/i_beam( (src.holder ? src.holder.loc : src.loc) )
if((!(first) && (secured && (istype(loc, /turf) || (holder && istype(holder.loc, /turf))))))
var/obj/effect/beam/i_beam/I = new /obj/effect/beam/i_beam((holder ? holder.loc : loc) )
I.master = src
I.density = 1
I.dir = src.dir
I.dir = dir
step(I, I.dir)
if (I)
if(I)
I.density = 0
src.first = I
I.vis_spread(src.visible)
spawn( 0 )
if (I)
first = I
I.vis_spread(visible)
spawn(0)
if(I)
//world << "infra: setting limit"
I.limit = 8
//world << "infra: processing beam \ref[I]"
@@ -79,31 +77,30 @@
attack_hand()
del(src.first)
del(first)
..()
return
Move()
var/t = src.dir
var/t = dir
..()
src.dir = t
del(src.first)
dir = t
del(first)
return
holder_movement()
if(!holder) return 0
// src.dir = holder.dir
del(src.first)
// dir = holder.dir
del(first)
return 1
trigger_beam()
if((!secured)||(!scanning)||(cooldown > 0)) return 0
if((!secured)||(!on)||(cooldown > 0)) return 0
pulse(0)
for(var/mob/O in hearers(null, null))
O.show_message(text("\icon[] *beep* *beep*", src), 3, "*beep* *beep*", 2)
visible_message("\icon[src] *beep* *beep*")
cooldown = 2
spawn(10)
process_cooldown()
@@ -113,7 +110,7 @@
interact(mob/user as mob)//TODO: change this this to the wire control panel
if(!secured) return
user.machine = src
var/dat = text("<TT><B>Infrared Laser</B>\n<B>Status</B>: []<BR>\n<B>Visibility</B>: []<BR>\n</TT>", (src.scanning ? text("<A href='?src=\ref[];state=0'>On</A>", src) : text("<A href='?src=\ref[];state=1'>Off</A>", src)), (src.visible ? text("<A href='?src=\ref[];visible=0'>Visible</A>", src) : text("<A href='?src=\ref[];visible=1'>Invisible</A>", src)))
var/dat = text("<TT><B>Infrared Laser</B>\n<B>Status</B>: []<BR>\n<B>Visibility</B>: []<BR>\n</TT>", (on ? text("<A href='?src=\ref[];state=0'>On</A>", src) : text("<A href='?src=\ref[];state=1'>Off</A>", src)), (src.visible ? text("<A href='?src=\ref[];visible=0'>Visible</A>", src) : text("<A href='?src=\ref[];visible=1'>Invisible</A>", src)))
dat += "<BR><BR><A href='?src=\ref[src];refresh=1'>Refresh</A>"
dat += "<BR><BR><A href='?src=\ref[src];close=1'>Close</A>"
user << browse(dat, "window=infra")
@@ -128,22 +125,22 @@
onclose(usr, "infra")
return
if (href_list["state"])
src.scanning = !(src.scanning)
if(href_list["state"])
on = !(on)
update_icon()
if (href_list["visible"])
src.visible = !(src.visible)
spawn( 0 )
if(src.first)
src.first.vis_spread(src.visible)
if(href_list["visible"])
visible = !(visible)
spawn(0)
if(first)
first.vis_spread(visible)
if (href_list["close"])
if(href_list["close"])
usr << browse(null, "window=infra")
return
if(usr)
src.attack_self(usr)
attack_self(usr)
return
@@ -153,7 +150,7 @@
set category = "Object"
set src in usr
src.dir = turn(src.dir, 90)
dir = turn(dir, 90)
return
@@ -175,63 +172,62 @@
/obj/effect/beam/i_beam/proc/hit()
//world << "beam \ref[src]: hit"
if(src.master)
if(master)
//world << "beam hit \ref[src]: calling master \ref[master].hit"
src.master.trigger_beam()
master.trigger_beam()
del(src)
return
/obj/effect/beam/i_beam/proc/vis_spread(v)
//world << "i_beam \ref[src] : vis_spread"
src.visible = v
visible = v
spawn(0)
if(src.next)
if(next)
//world << "i_beam \ref[src] : is next [next.type] \ref[next], calling spread"
src.next.vis_spread(v)
next.vis_spread(v)
return
return
/obj/effect/beam/i_beam/process()
//world << "i_beam \ref[src] : process"
if((src.loc.density || !( src.master )))
//SN src = null
if((loc.density || !(master)))
// world << "beam hit loc [loc] or no master [master], deleting"
del(src)
return
//world << "proccess: [src.left] left"
if(src.left > 0)
src.left--
if(src.left < 1)
if(!( src.visible ))
src.invisibility = 101
if(left > 0)
left--
if(left < 1)
if(!(visible))
invisibility = 101
else
src.invisibility = 0
invisibility = 0
else
src.invisibility = 0
invisibility = 0
//world << "now [src.left] left"
var/obj/effect/beam/i_beam/I = new /obj/effect/beam/i_beam( src.loc )
I.master = src.master
var/obj/effect/beam/i_beam/I = new /obj/effect/beam/i_beam(loc)
I.master = master
I.density = 1
I.dir = src.dir
I.dir = dir
//world << "created new beam \ref[I] at [I.x] [I.y] [I.z]"
step(I, I.dir)
if(I)
//world << "step worked, now at [I.x] [I.y] [I.z]"
if (!( src.next ))
//world << "no src.next"
if(!(next))
//world << "no next"
I.density = 0
//world << "spreading"
I.vis_spread(src.visible)
src.next = I
spawn( 0 )
//world << "limit = [src.limit] "
if ((I && src.limit > 0))
I.limit = src.limit - 1
I.vis_spread(visible)
next = I
spawn(0)
//world << "limit = [limit] "
if((I && limit > 0))
I.limit = limit - 1
//world << "calling next process"
I.process()
return
@@ -239,10 +235,10 @@
//world << "is a next: \ref[next], deleting beam \ref[I]"
del(I)
else
//world << "step failed, deleting \ref[src.next]"
del(src.next)
//world << "step failed, deleting \ref[next]"
del(next)
spawn(10)
src.process()
process()
return
return
@@ -251,18 +247,18 @@
return
/obj/effect/beam/i_beam/Bumped()
src.hit()
hit()
return
/obj/effect/beam/i_beam/HasEntered(atom/movable/AM as mob|obj)
if(istype(AM, /obj/effect/beam))
return
spawn( 0 )
src.hit()
spawn(0)
hit()
return
return
/obj/effect/beam/i_beam/Del()
del(src.next)
del(next)
..()
return

View File

@@ -1,5 +1,3 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32
/obj/item/device/assembly/prox_sensor
name = "proximity sensor"
desc = "Used for scanning and alerting when someone enters a certain proximity."
@@ -10,8 +8,6 @@
origin_tech = "magnets=1"
secured = 0
small_icon_state_left = "prox_left"
small_icon_state_right = "prox_right"
var/scanning = 0
var/timing = 0
@@ -50,8 +46,7 @@
sense()
if((!secured)||(!scanning)||(cooldown > 0)) return 0
pulse(0)
for(var/mob/O in hearers(null, null))
O.show_message(text("\icon[] *beep* *beep*", src), 3, "*beep* *beep*", 2)
visible_message("\icon[src] *beep* *beep*", "*beep* *beep*")
cooldown = 2
spawn(10)
process_cooldown()
@@ -84,13 +79,13 @@
update_icon()
overlays = null
small_icon_state_overlays = list()
attached_overlays = list()
if(timing)
overlays += text("prox_timing")
small_icon_state_overlays += text("prox_timing")
overlays += "prox_timing"
attached_overlays += "prox_timing"
if(scanning)
overlays += text("prox_scanning")
small_icon_state_overlays += text("prox_scanning")
overlays += "prox_scanning"
attached_overlays += "prox_scanning"
if(holder)
holder.update_icon()
return

View File

@@ -0,0 +1,56 @@
/obj/item/assembly/shock_kit
name = "Shock Kit"
desc = "This appears to be made from both an Electric Pack and a Helmet."
icon_state = "shock_kit"
var/obj/item/clothing/head/helmet/part1 = null
var/obj/item/device/radio/electropack/part2 = null
var/status = 0.0
w_class = 5.0
flags = FPRINT | TABLEPASS| CONDUCT
/obj/item/assembly/shock_kit/Del()
//src.part1 = null
del(src.part1)
//src.part2 = null
del(src.part2)
..()
return
/obj/item/assembly/shock_kit/attackby(obj/item/weapon/W as obj, mob/user as mob)
..()
if ((istype(W, /obj/item/weapon/wrench) && !( src.status )))
var/turf/T = src.loc
if (ismob(T))
T = T.loc
src.part1.loc = T
src.part2.loc = T
src.part1.master = null
src.part2.master = null
src.part1 = null
src.part2 = null
del(src)
return
if (!( istype(W, /obj/item/weapon/screwdriver) ))
return
src.status = !( src.status )
if (!src.status)
user.show_message("\blue The shock pack is now secured!", 1)
else
user.show_message("\blue The shock pack is now unsecured!", 1)
src.add_fingerprint(user)
return
/obj/item/assembly/shock_kit/attack_self(mob/user as mob)
src.part1.attack_self(user, src.status)
src.part2.attack_self(user, src.status)
src.add_fingerprint(user)
return
/obj/item/assembly/shock_kit/receive_signal()
//*****
//world << "Shock kit got r_signal"
if (istype(src.loc, /obj/structure/stool/bed/chair/e_chair))
var/obj/structure/stool/bed/chair/e_chair/C = src.loc
//world << "Shock kit sending shock to EC"
C.shock()
return

View File

@@ -1,7 +1,5 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32
/obj/item/device/assembly/signaler
name = "Remote Signaling Device"
name = "remote signaling device"
desc = "Used to remotely activate devices."
icon_state = "signaller"
item_state = "signaler"
@@ -12,8 +10,6 @@
wires = WIRE_RECEIVE | WIRE_PULSE | WIRE_RADIO_PULSE | WIRE_RADIO_RECEIVE
secured = 1
small_icon_state_left = "signaller_left"
small_icon_state_right = "signaller_right"
var/code = 30
var/frequency = 1457

View File

@@ -1,5 +1,3 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32
/obj/item/device/assembly/timer
name = "timer"
desc = "Used to time things. Works well with contraptions which has to count down. Tick tock."
@@ -10,8 +8,6 @@
origin_tech = "magnets=1"
secured = 0
small_icon_state_left = "timer_left"
small_icon_state_right = "timer_right"
var/timing = 0
var/time = 10
@@ -61,10 +57,10 @@
update_icon()
overlays = null
small_icon_state_overlays = list()
attached_overlays = list()
if(timing)
overlays += text("timer_timing")
small_icon_state_overlays += text("timer_timing")
overlays += "timer_timing"
attached_overlays += "timer_timing"
if(holder)
holder.update_icon()
return