Merge branch 'incremental_tg' r4967 (27/10/2012) into bs12_with_tgport

Conflicts:
	baystation12.dme
	code/__HELPERS/game.dm
	code/__HELPERS/type2type.dm
	code/datums/helper_datums/getrev.dm
	code/game/atoms.dm
	code/game/gamemodes/events.dm
	code/game/machinery/atmo_control.dm
	code/game/machinery/atmoalter/area_atmos_computer.dm
	code/game/machinery/computer/HolodeckControl.dm
	code/game/machinery/computer/atmos_alert.dm
	code/game/machinery/computer/card.dm
	code/game/machinery/computer/cloning.dm
	code/game/machinery/computer/computer.dm
	code/game/machinery/computer/pod.dm
	code/game/machinery/computer/prisoner.dm
	code/game/machinery/computer/syndicate_shuttle.dm
	code/game/machinery/newscaster.dm
	code/game/machinery/spaceheater.dm
	code/game/machinery/telecomms/broadcaster.dm
	code/game/machinery/telecomms/logbrowser.dm
	code/game/machinery/telecomms/machine_interactions.dm
	code/game/machinery/telecomms/telemonitor.dm
	code/game/machinery/telecomms/traffic_control.dm
	code/game/machinery/wishgranter.dm
	code/game/objects/items/devices/uplinks.dm
	code/game/objects/items/stacks/stack.dm
	code/game/objects/objs.dm
	code/modules/DetectiveWork/detective_work.dm
	code/modules/admin/IsBanned.dm
	code/modules/admin/admin.dm
	code/modules/admin/verbs/adminsay.dm
	code/modules/admin/verbs/getlogs.dm
	code/modules/awaymissions/zlevel.dm
	code/modules/client/client procs.dm
	code/modules/clothing/masks/miscellaneous.dm
	code/modules/clothing/spacesuits/miscellaneous.dm
	code/modules/flufftext/TextFilters.dm
	code/modules/mining/machine_processing.dm
	code/modules/mining/machine_stacking.dm
	code/modules/mining/mine_items.dm
	code/modules/mining/mint.dm
	code/modules/mining/satchel_ore_boxdm.dm
	code/modules/mob/living/carbon/monkey/life.dm
	code/modules/mob/living/living_defense.dm
	code/modules/mob/living/simple_animal/friendly/corgi.dm
	code/modules/mob/mob.dm
	code/modules/paperwork/filingcabinet.dm
	code/modules/paperwork/photocopier.dm
	code/modules/power/gravitygenerator.dm
	html/changelog.html
	icons/mob/head.dmi
	icons/mob/human_face.dmi
	icons/mob/mask.dmi
	icons/mob/suit.dmi
	icons/obj/clothing/hats.dmi
	icons/obj/clothing/masks.dmi
	icons/obj/clothing/suits.dmi

Signed-off-by: Cael_Aislinn <cael_aislinn@yahoo.com.au>
This commit is contained in:
Cael_Aislinn
2012-12-28 01:03:14 +10:00
250 changed files with 9936 additions and 10091 deletions
+5 -7
View File
@@ -24,13 +24,11 @@
/atom/proc/throw_impact(atom/hit_atom)
if(istype(hit_atom,/mob/living))
var/mob/living/M = hit_atom
M.visible_message("\red [hit_atom] has been hit by [src].")
if(isobj(src))//Hate typecheckin for a child object but this is just fixing crap another guy broke so if someone wants to put the time in and make this proper feel free.
M.take_organ_damage(src:throwforce)
M.hitby(src)
log_attack("<font color='red'>[hit_atom] ([M.ckey]) was hit by [src] thrown by ([src.fingerprintslast])</font>")
log_admin("ATTACK: [hit_atom] ([M.ckey]) was hit by [src] thrown by ([src.fingerprintslast])")
msg_admin_attack("ATTACK: [hit_atom] ([M.ckey]) was hit by [src] thrown by ([src.fingerprintslast])")
log_attack("<font color='red'>[hit_atom] ([M.ckey]) was hit by [src] thrown by ([src.fingerprintslast])</font>")
log_admin("ATTACK: [hit_atom] ([M.ckey]) was hit by [src] thrown by ([src.fingerprintslast])")
msg_admin_attack("ATTACK: [hit_atom] ([M.ckey]) was hit by [src] thrown by ([src.fingerprintslast])")
else if(isobj(hit_atom))
var/obj/O = hit_atom
@@ -62,7 +60,7 @@
return null
/atom/proc/check_eye(user as mob)
if (istype(user, /mob/living/silicon/ai))
if (istype(user, /mob/living/silicon/ai)) // WHYYYY
return 1
return
+1 -1
View File
@@ -983,7 +983,7 @@
if(!src || !src.connected)
return
if ((usr.contents.Find(src) || in_range(src, usr) && istype(src.loc, /turf)) || (istype(usr, /mob/living/silicon)))
usr.machine = src
usr.set_machine(src)
if (href_list["locked"])
if ((src.connected && src.connected.occupant))
src.connected.locked = !( src.connected.locked )
+1 -1
View File
@@ -565,7 +565,7 @@ var/engwords = list("travel", "blood", "join", "hell", "destroy", "technology",
for (var/mob/V in viewers(src))
V.show_message("\red [user] slices open a finger and begins to chant and paint symbols on the floor.", 3, "\red You hear chanting.", 2)
user << "\red You slice open one of your fingers and begin drawing a rune on the floor whilst chanting the ritual that binds your life essence with the dark arcane energies flowing through the surrounding world."
user.take_overall_damage(1)
user.take_overall_damage((rand(9)+1)/10) // 0.1 to 1.0 damage
if(do_after(user, 50))
if(usr.get_active_hand() != src)
return
+2 -10
View File
@@ -237,15 +237,7 @@
if(temp_vent.network.normal_members.len > 50) // Stops Aliens getting stuck in small networks. See: Security, Virology
vents += temp_vent
var/list/candidates = list() //List of candidate KEYs to control the new larvae. ~Carn
var/i = 0
while(candidates.len <= 0 && i < 5)
for(var/mob/dead/observer/G in player_list)
if(G.client.be_alien)
if(((G.client.inactivity/10)/60) <= ALIEN_SELECT_AFK_BUFFER + i) // the most active players are more likely to become an alien
if(!(G.mind && G.mind.current && G.mind.current.stat != DEAD))
candidates += G.key
i++
var/list/candidates = get_alien_candidates()
if(prob(33)) spawncount++ //sometimes, have two larvae spawn instead of one
while((spawncount >= 1) && vents.len && candidates.len)
@@ -490,4 +482,4 @@ Would like to add a law like "Law x is _______" where x = a number, and _____ is
world << "Finished processing FIREDOORS. Processed: [firedoornum]"
world << "Ion Storm Main Done"
*/
*/
+2 -2
View File
@@ -46,7 +46,7 @@
/obj/machinery/nuclearbomb/attack_hand(mob/user as mob)
if (src.extended)
user.machine = src
user.set_machine(src)
var/dat = text("<TT><B>Nuclear Fission Explosive</B><BR>\nAuth. Disk: <A href='?src=\ref[];auth=1'>[]</A><HR>", src, (src.auth ? "++++++++++" : "----------"))
if (src.auth)
if (src.yes_code)
@@ -91,7 +91,7 @@
usr << "\red You don't have the dexterity to do this!"
return 1
if ((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))))
usr.machine = src
usr.set_machine(src)
if (href_list["auth"])
if (src.auth)
src.auth.loc = src.loc
+2 -2
View File
@@ -267,7 +267,7 @@
. = ..()
/obj/item/weapon/pinpointer/attack_self(mob/user as mob)
user.machine = src
user.set_machine(src)
var/dat
if (src.temp)
dat = "[src.temp]<BR><BR><A href='byond://?src=\ref[src];temp=1'>Clear</A>"
@@ -298,7 +298,7 @@
return
if ((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))))
usr.machine = src
usr.set_machine(src)
if (href_list["refresh"])
src.temp = "<B>Nuclear Disk Pinpointer</B><HR>"
var/turf/sr = get_turf(src)
+4 -4
View File
@@ -41,7 +41,7 @@
attack_self(mob/user)
if (!in_range(src, user))
return
user.machine = src
user.set_machine(src)
var/dat = "<TT><B>Soul Stone</B><BR>"
for(var/mob/living/simple_animal/shade/A in src)
dat += "Captured Soul: [A.name]<br>"
@@ -59,16 +59,16 @@
var/mob/U = usr
if (!in_range(src, U)||U.machine!=src)
U << browse(null, "window=aicard")
U.machine = null
U.unset_machine()
return
add_fingerprint(U)
U.machine = src
U.set_machine(src)
switch(href_list["choice"])//Now we switch based on choice.
if ("Close")
U << browse(null, "window=aicard")
U.machine = null
U.unset_machine()
return
if ("Summon")
+2 -2
View File
@@ -2,7 +2,7 @@
//SPELL BOOK PROCS
/obj/item/weapon/spellbook/attack_self(mob/user as mob)
user.machine = src
user.set_machine(src)
var/dat
if (src.temp)
dat = "[src.temp]<BR><BR><A href='byond://?src=\ref[src];temp=1'>Clear</A>"
@@ -53,7 +53,7 @@
if (!( istype(H, /mob/living/carbon/human)))
return 1
if ((usr.contents.Find(src) || (in_range(src,usr) && istype(src.loc, /turf))))
usr.machine = src
usr.set_machine(src)
if(href_list["spell_choice"])
if(src.uses >= 1 && src.max_uses >=1 && text2num(href_list["spell_choice"]) < 18)
src.uses--
+2 -2
View File
@@ -90,7 +90,7 @@
..()
//NOTE: If a room requires more than one access (IE: Morgue + medbay) set the req_acesss_txt to "5;6" if it requires 5 and 6
if(src.req_access_txt)
var/list/req_access_str = dd_text2list(req_access_txt,";")
var/list/req_access_str = text2list(req_access_txt,";")
if(!req_access)
req_access = list()
for(var/x in req_access_str)
@@ -99,7 +99,7 @@
req_access += n
if(src.req_one_access_txt)
var/list/req_one_access_str = dd_text2list(req_one_access_txt,";")
var/list/req_one_access_str = text2list(req_one_access_txt,";")
if(!req_one_access)
req_one_access = list()
for(var/x in req_one_access_str)
+1 -7
View File
@@ -395,13 +395,7 @@ var/global/datum/controller/occupations/job_master
if(!config.load_jobs_from_txt)
return 0
var/text = file2text(jobsfile)
if(!text)
world << "No jobs.txt found, using defaults."
return
var/list/jobEntries = dd_text2list(text, "\n")
var/list/jobEntries = file2list(jobsfile)
for(var/job in jobEntries)
if(!job)
+3 -6
View File
@@ -3,11 +3,8 @@
var/list/whitelist = list()
/proc/load_whitelist()
var/text = file2text(WHITELISTFILE)
if (!text)
diary << "Failed to [WHITELISTFILE]\n"
else
whitelist = dd_text2list(text, "\n")
whitelist = file2list(WHITELISTFILE)
if(!whitelist.len) whitelist = null
/proc/check_whitelist(mob/M /*, var/rank*/)
if(!whitelist)
@@ -21,7 +18,7 @@ proc/load_alienwhitelist()
if (!text)
diary << "Failed to load config/alienwhitelist.txt\n"
else
alien_whitelist = dd_text2list(text, "\n")
alien_whitelist = text2list(text, "\n")
/proc/is_alien_whitelisted(mob/M, var/species)
if(!alien_whitelist)
+4 -4
View File
@@ -42,7 +42,7 @@
return src.attack_hand(user)
attack_hand(mob/user as mob)
user.machine = src
user.set_machine(src)
var/temp_text = ""
if(air_contents.temperature > (T0C - 20))
temp_text = "<FONT color=red>[air_contents.temperature]</FONT>"
@@ -63,7 +63,7 @@
Topic(href, href_list)
if ((usr.contents.Find(src) || ((get_dist(src, usr) <= 1) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon/ai)))
usr.machine = src
usr.set_machine(src)
if (href_list["start"])
src.on = !src.on
update_icon()
@@ -128,7 +128,7 @@
return src.attack_hand(user)
attack_hand(mob/user as mob)
user.machine = src
user.set_machine(src)
var/temp_text = ""
if(air_contents.temperature > (T20C+40))
temp_text = "<FONT color=red>[air_contents.temperature]</FONT>"
@@ -147,7 +147,7 @@
Topic(href, href_list)
if ((usr.contents.Find(src) || ((get_dist(src, usr) <= 1) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon/ai)))
usr.machine = src
usr.set_machine(src)
if (href_list["start"])
src.on = !src.on
update_icon()
+1 -1
View File
@@ -84,7 +84,7 @@
if(..())
return
if ((usr.contents.Find(src) || ((get_dist(src, usr) <= 1) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon/ai)))
usr.machine = src
usr.set_machine(src)
if (src.connected)
if (src.connected.occupant)
if(src.connected.occupant.health > 0)
+3 -3
View File
@@ -39,7 +39,7 @@
user << "You [ locked ? "lock" : "unlock"] the device."
if (locked)
if (user.machine==src)
user.machine = null
user.unset_machine()
user << browse(null, "window=ai_slipper")
else
if (user.machine==src)
@@ -58,11 +58,11 @@
if ( (get_dist(src, user) > 1 ))
if (!istype(user, /mob/living/silicon))
user << text("Too far away.")
user.machine = null
user.unset_machine()
user << browse(null, "window=ai_slipper")
return
user.machine = src
user.set_machine(src)
var/loc = src.loc
if (istype(loc, /turf))
loc = loc:loc
+8 -8
View File
@@ -177,11 +177,11 @@
. = ..()
if (.)
return
user.machine = src
user.set_machine(src)
if ( (get_dist(src, user) > 1 ))
if (!istype(user, /mob/living/silicon))
user.machine = null
user.unset_machine()
user << browse(null, "window=air_alarm")
user << browse(null, "window=AAlarmwires")
return
@@ -716,11 +716,11 @@ table tr:first-child th:first-child { border: none;}
if(..())
return
src.add_fingerprint(usr)
usr.machine = src
usr.set_machine(src)
if ( (get_dist(src, usr) > 1 ))
if (!istype(usr, /mob/living/silicon))
usr.machine = null
usr.unset_machine()
usr << browse(null, "window=air_alarm")
usr << browse(null, "window=AAlarmwires")
return
@@ -1080,7 +1080,7 @@ table tr:first-child th:first-child { border: none;}
if(user.stat || stat & (NOPOWER|BROKEN))
return
user.machine = src
user.set_machine(src)
var/area/A = src.loc
var/d1
var/d2
@@ -1122,7 +1122,7 @@ table tr:first-child th:first-child { border: none;}
if (usr.stat || stat & (BROKEN|NOPOWER))
return
if ((usr.contents.Find(src) || ((get_dist(src, usr) <= 1) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon)))
usr.machine = src
usr.set_machine(src)
if (href_list["reset"])
src.reset()
else
@@ -1175,7 +1175,7 @@ table tr:first-child th:first-child { border: none;}
if(user.stat || stat & (NOPOWER|BROKEN))
return
user.machine = src
user.set_machine(src)
var/area/A = src.loc
var/d1
var/d2
@@ -1237,7 +1237,7 @@ table tr:first-child th:first-child { border: none;}
if (usr.stat || stat & (BROKEN|NOPOWER))
return
if ((usr.contents.Find(src) || ((get_dist(src, usr) <= 1) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon/ai)))
usr.machine = src
usr.set_machine(src)
if (href_list["reset"])
src.reset()
else
+1 -1
View File
@@ -88,7 +88,7 @@ obj/machinery/computer/general_air_control
attack_hand(mob/user)
user << browse(return_text(),"window=computer")
user.machine = src
user.set_machine(src)
onclose(user, "computer")
process()
@@ -87,7 +87,7 @@
Topic(href, href_list)
if(..())
return
usr.machine = src
usr.set_machine(src)
src.add_fingerprint(usr)
+8 -12
View File
@@ -159,6 +159,12 @@
healthcheck()
return
/obj/machinery/portable_atmospherics/canister/bullet_act(var/obj/item/projectile/Proj)
if(Proj.damage)
src.health -= round(Proj.damage / 2)
healthcheck()
..()
/obj/machinery/portable_atmospherics/canister/meteorhit(var/obj/O as obj)
src.health = 0
healthcheck()
@@ -196,7 +202,7 @@
if (src.destroyed)
return
user.machine = src
user.set_machine(src)
var/holding_text
if(holding)
holding_text = {"<BR><B>Tank Pressure</B>: [holding.air_contents.return_pressure()] KPa<BR>
@@ -226,7 +232,7 @@ Release Pressure: <A href='?src=\ref[src];pressure_adj=-1000'>-</A> <A href='?sr
return
if (((get_dist(src, usr) <= 1) && istype(src.loc, /turf)))
usr.machine = src
usr.set_machine(src)
if(href_list["toggle"])
if (valve_open)
@@ -277,16 +283,6 @@ Release Pressure: <A href='?src=\ref[src];pressure_adj=-1000'>-</A> <A href='?sr
return
return
/obj/machinery/portable_atmospherics/canister/bullet_act(var/obj/item/projectile/Proj)
health -= Proj.damage
if(Proj.flag == "bullet")
src.health = 0
spawn( 0 )
healthcheck()
return
..()
return
/obj/machinery/portable_atmospherics/canister/toxins/New()
..()
+2 -2
View File
@@ -82,7 +82,7 @@
/obj/machinery/portable_atmospherics/pump/attack_hand(var/mob/user as mob)
user.machine = src
user.set_machine(src)
var/holding_text
if(holding)
@@ -112,7 +112,7 @@ Target Pressure: <A href='?src=\ref[src];pressure_adj=-1000'>-</A> <A href='?src
return
if (((get_dist(src, usr) <= 1) && istype(src.loc, /turf)))
usr.machine = src
usr.set_machine(src)
if(href_list["power"])
on = !on
+2 -2
View File
@@ -143,7 +143,7 @@
/obj/machinery/portable_atmospherics/scrubber/attack_hand(var/mob/user as mob)
user.machine = src
user.set_machine(src)
var/holding_text
if(holding)
@@ -172,7 +172,7 @@ Power regulator: <A href='?src=\ref[src];volume_adj=-1000'>-</A> <A href='?src=\
return
if (((get_dist(src, usr) <= 1) && istype(src.loc, /turf)))
usr.machine = src
usr.set_machine(src)
if(href_list["power"])
on = !on
+3 -3
View File
@@ -165,7 +165,7 @@ var/global/list/autolathe_recipes_hidden = list( \
del(src)
return 1
else
user.machine = src
user.set_machine(src)
interact(user)
return 1
@@ -219,14 +219,14 @@ var/global/list/autolathe_recipes_hidden = list( \
return src.attack_hand(user)
attack_hand(mob/user as mob)
user.machine = src
user.set_machine(src)
interact(user)
Topic(href, href_list)
if(..())
return
usr.machine = src
usr.set_machine(src)
src.add_fingerprint(usr)
if (!busy)
if(href_list["make"])
+2 -2
View File
@@ -77,7 +77,7 @@
/obj/machinery/biogenerator/proc/interact(mob/user as mob)
if(stat & BROKEN)
return
user.machine = src
user.set_machine(src)
var/dat = "<TITLE>Biogenerator</TITLE>Biogenerator:<BR>"
if (processing)
dat += "<FONT COLOR=red>Biogenerator is processing! Please wait...</FONT>"
@@ -206,7 +206,7 @@
if(usr.stat || usr.restrained()) return
if(!in_range(src, usr)) return
usr.machine = src
usr.set_machine(src)
switch(href_list["action"])
if("activate")
-7
View File
@@ -51,13 +51,6 @@
return
/obj/machinery/bot/attack_alien(var/mob/living/carbon/alien/user as mob)
/* Well, aliums dislike machines and do not want to caress them.
if (user.a_intent == "help")
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
O.show_message(text("\blue [user] caresses [src.name] with its scythe like arm."), 1)
else
*/
src.health -= rand(15,30)*brute_dam_coeff
src.visible_message("\red <B>[user] has slashed [src]!</B>")
playsound(src.loc, 'sound/weapons/slice.ogg', 25, 1, -1)
+2 -2
View File
@@ -76,7 +76,7 @@
. = ..()
if (.)
return
usr.machine = src
usr.set_machine(src)
interact(user)
/obj/machinery/bot/cleanbot/proc/interact(mob/user as mob)
@@ -105,7 +105,7 @@ text("<A href='?src=\ref[src];operation=oddbutton'>[src.oddbutton ? "Yes" : "No"
/obj/machinery/bot/cleanbot/Topic(href, href_list)
if(..())
return
usr.machine = src
usr.set_machine(src)
src.add_fingerprint(usr)
switch(href_list["operation"])
if("start")
+1 -1
View File
@@ -150,7 +150,7 @@ Auto Patrol: []"},
/obj/machinery/bot/ed209/Topic(href, href_list)
if (..())
return
usr.machine = src
usr.set_machine(src)
src.add_fingerprint(usr)
if(lasercolor && (istype(usr,/mob/living/carbon/human)))
var/mob/living/carbon/human/H = usr
+2 -2
View File
@@ -72,7 +72,7 @@
. = ..()
if (.)
return
usr.machine = src
usr.set_machine(src)
interact(user)
/obj/machinery/bot/floorbot/proc/interact(mob/user as mob)
@@ -131,7 +131,7 @@
/obj/machinery/bot/floorbot/Topic(href, href_list)
if(..())
return
usr.machine = src
usr.set_machine(src)
src.add_fingerprint(usr)
switch(href_list["operation"])
if("start")
+1 -1
View File
@@ -142,7 +142,7 @@
/obj/machinery/bot/medbot/Topic(href, href_list)
if(..())
return
usr.machine = src
usr.set_machine(src)
src.add_fingerprint(usr)
if ((href_list["power"]) && (src.allowed(usr)))
if (src.on)
+6 -9
View File
@@ -192,14 +192,14 @@
/obj/machinery/bot/mulebot/attack_ai(var/mob/user)
user.machine = src
user.set_machine(src)
interact(user, 1)
/obj/machinery/bot/mulebot/attack_hand(var/mob/user)
. = ..()
if (.)
return
user.machine = src
user.set_machine(src)
interact(user, 0)
/obj/machinery/bot/mulebot/proc/interact(var/mob/user, var/ai=0)
@@ -290,7 +290,7 @@
if (usr.stat)
return
if ((in_range(src, usr) && istype(src.loc, /turf)) || (istype(usr, /mob/living/silicon)))
usr.machine = src
usr.set_machine(src)
switch(href_list["op"])
if("lock", "unlock")
@@ -309,10 +309,7 @@
return
else
return
usr << "You switch [on ? "on" : "off"] [src]."
for(var/mob/M in viewers(src))
if(M==usr) continue
M << "[usr] switches [on ? "on" : "off"] [src]."
visible_message("[usr] switches [on ? "on" : "off"] [src].")
updateDialog()
@@ -393,7 +390,7 @@
auto_pickup = !auto_pickup
if("close")
usr.machine = null
usr.unset_machine()
usr << browse(null,"window=mulebot")
@@ -432,7 +429,7 @@
//src.updateUsrDialog()
else
usr << browse(null, "window=mulebot")
usr.machine = null
usr.unset_machine()
return
+4 -6
View File
@@ -99,7 +99,7 @@
. = ..()
if(.)
return
usr.machine = src
usr.set_machine(src)
interact(user)
/obj/machinery/bot/secbot/proc/interact(mob/user as mob)
@@ -131,7 +131,7 @@ Auto Patrol: []"},
return
/obj/machinery/bot/secbot/Topic(href, href_list)
usr.machine = src
usr.set_machine(src)
src.add_fingerprint(usr)
if((href_list["power"]) && (src.allowed(usr)))
if(src.on)
@@ -236,8 +236,7 @@ Auto Patrol: []"},
maxstuns--
if(maxstuns <= 0)
target = null
for(var/mob/O in viewers(src, null))
O.show_message("\red <B>[src.target] has been stunned by [src]!</B>", 1, "\red You hear someone fall", 2)
visible_message("\red <B>[src.target] has been stunned by [src]!</B>")
mode = SECBOT_PREP_ARREST
src.anchored = 1
@@ -263,8 +262,7 @@ Auto Patrol: []"},
if(!src.target.handcuffed && !src.arrest_type)
playsound(src.loc, 'sound/weapons/handcuffs.ogg', 30, 1, -2)
mode = SECBOT_ARREST
for(var/mob/O in viewers(src, null))
O.show_message("\red <B>[src] is trying to put handcuffs on [src.target]!</B>", 1)
visible_message("\red <B>[src] is trying to put handcuffs on [src.target]!</B>")
spawn(60)
if(get_dist(src, src.target) <= 1)
+9 -14
View File
@@ -66,7 +66,7 @@
if (istype(O.machine, /obj/machinery/computer/security))
var/obj/machinery/computer/security/S = O.machine
if (S.current == src)
O.machine = null
O.unset_machine()
O.reset_view(null)
O << "The screen bursts into static."
..()
@@ -95,9 +95,8 @@
if(!istype(user))
return
status = 0
for(var/mob/O in viewers(user, null))
O.show_message("<span class='warning'>\The [user] slashes at [src]!</span>", 1)
playsound(src.loc, 'sound/weapons/slash.ogg', 100, 1)
visible_message("<span class='warning'>\The [user] slashes at [src]!</span>")
playsound(src.loc, 'sound/weapons/slash.ogg', 100, 1)
icon_state = "[initial(icon_state)]1"
add_hiddenprint(user)
deactivate(user,0)
@@ -169,9 +168,7 @@
spark_system.start()
playsound(loc, 'sound/weapons/blade1.ogg', 50, 1)
playsound(loc, "sparks", 50, 1)
for(var/mob/O in viewers(user, 3))
O.show_message(text("\blue The camera has been sliced apart by [] with an energy blade!", user), 1, text("\red You hear metal being sliced and sparks flying."), 2)
visible_message("\blue The camera has been sliced apart by [] with an energy blade!")
del(src)
else
..()
@@ -181,15 +178,13 @@
if(choice==1)
status = !( src.status )
if (!(src.status))
for(var/mob/O in viewers(user, null))
O.show_message(text("\red [] has deactivated []!", user, src), 1)
playsound(src.loc, 'sound/items/Wirecutter.ogg', 100, 1)
visible_message("\red [user] has deactivated [src]!")
playsound(src.loc, 'sound/items/Wirecutter.ogg', 100, 1)
icon_state = "[initial(icon_state)]1"
add_hiddenprint(user)
else
for(var/mob/O in viewers(user, null))
O.show_message(text("\red [] has reactivated []!", user, src), 1)
playsound(src.loc, 'sound/items/Wirecutter.ogg', 100, 1)
visible_message("\red [user] has reactivated [src]!")
playsound(src.loc, 'sound/items/Wirecutter.ogg', 100, 1)
icon_state = initial(icon_state)
add_hiddenprint(user)
// now disconnect anyone using the camera
@@ -199,7 +194,7 @@
if (istype(O.machine, /obj/machinery/computer/security))
var/obj/machinery/computer/security/S = O.machine
if (S.current == src)
O.machine = null
O.unset_machine()
O.reset_view(null)
O << "The screen bursts into static."
+3 -3
View File
@@ -102,7 +102,7 @@
if(!panel_open)
return
user.machine = src
user.set_machine(src)
var/t1 = text("<B>Access Panel</B><br>\n")
var/list/wires = list(
"Orange" = 1,
@@ -136,7 +136,7 @@
/obj/machinery/camera/Topic(href, href_list)
..()
if (in_range(src, usr) && istype(src.loc, /turf))
usr.machine = src
usr.set_machine(src)
if (href_list["wires"])
var/t1 = text2num(href_list["wires"])
if (!( istype(usr.get_active_hand(), /obj/item/weapon/wirecutters) ))
@@ -158,7 +158,7 @@
src.pulse(t1)
else if (href_list["close2"])
usr << browse(null, "window=wires")
usr.machine = null
usr.unset_machine()
return
@@ -20,7 +20,7 @@
if(..())
return
user.machine = src
user.set_machine(src)
var/dat
@@ -63,7 +63,7 @@
if(..())
return
if((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon)))
usr.machine = src
usr.set_machine(src)
if(href_list["emptycourt"])
target = locate(/area/holodeck/source_emptycourt)
@@ -236,8 +236,7 @@
if(!silent)
var/obj/oldobj = obj
for(var/mob/M in viewers(world.view,get_turf(obj)))
M << "The [oldobj.name] fades away!"
visible_message("The [oldobj.name] fades away!")
del(obj)
/obj/machinery/computer/HolodeckControl/proc/checkInteg(var/area/A)
@@ -402,9 +401,7 @@
return
G.affecting.loc = src.loc
G.affecting.Weaken(5)
for(var/mob/O in viewers(world.view, src))
if (O.client)
O << text("\red [] puts [] on the table.", G.assailant, G.affecting)
visible_message("\red [G.assailant] puts [G.affecting] on the table.")
del(W)
return
@@ -515,14 +512,12 @@
return
G.affecting.loc = src.loc
G.affecting.Weaken(5)
for(var/mob/M in viewers(src))
M.show_message("\red [G.assailant] dunks [G.affecting] into the [src]!", 3)
visible_message("\red [G.assailant] dunks [G.affecting] into the [src]!", 3)
del(W)
return
else if (istype(W, /obj/item) && get_dist(src,user)<2)
user.drop_item(src)
for(var/mob/M in viewers(src))
M.show_message("\blue [user] dunks [W] into the [src]!", 3)
visible_message("\blue [user] dunks [W] into the [src]!", 3)
return
/obj/structure/holohoop/CanPass(atom/movable/mover, turf/target, height=0, air_group=0)
@@ -532,11 +527,9 @@
return
if(prob(50))
I.loc = src.loc
for(var/mob/M in viewers(src))
M.show_message("\blue Swish! \the [I] lands in \the [src].", 3)
visible_message("\blue Swish! \the [I] lands in \the [src].", 3)
else
for(var/mob/M in viewers(src))
M.show_message("\red \the [I] bounces off of \the [src]'s rim!", 3)
visible_message("\red \the [I] bounces off of \the [src]'s rim!", 3)
return 0
else
return ..(mover, target, height, air_group)
+3 -3
View File
@@ -33,11 +33,11 @@
/obj/machinery/computer/operating/proc/interact(mob/user)
if ( (get_dist(src, user) > 1 ) || (stat & (BROKEN|NOPOWER)) )
if (!istype(user, /mob/living/silicon))
user.machine = null
user.unset_machine()
user << browse(null, "window=op")
return
user.machine = src
user.set_machine(src)
var/dat = "<HEAD><TITLE>Operating Computer</TITLE><META HTTP-EQUIV='Refresh' CONTENT='10'></HEAD><BODY>\n"
dat += "<A HREF='?src=\ref[user];mach_close=op'>Close</A><br><br>" //| <A HREF='?src=\ref[user];update=1'>Update</A>"
if(src.table && (src.table.check_victim()))
@@ -71,7 +71,7 @@
if(..())
return
if ((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon)))
usr.machine = src
usr.set_machine(src)
return
+1 -1
View File
@@ -68,7 +68,7 @@
user << "\red <b>ERROR</b>: \black Remote access channel disabled."
return
user.machine = src
user.set_machine(src)
var/dat = "<h3>AI System Integrity Restorer</h3><br><br>"
if (src.occupant)
+2 -2
View File
@@ -61,7 +61,7 @@
/obj/machinery/computer/arcade/attack_hand(mob/user as mob)
if(..())
return
user.machine = src
user.set_machine(src)
var/dat = "<a href='byond://?src=\ref[src];close=1'>Close</a>"
dat += "<center><h4>[src.enemy_name]</h4></center>"
@@ -126,7 +126,7 @@
src.arcade_action()
if (href_list["close"])
usr.machine = null
usr.unset_machine()
usr << browse(null, "window=arcade")
else if (href_list["newgame"]) //Reset everything
+1 -1
View File
@@ -41,7 +41,7 @@
attack_hand(mob/user)
user << browse(return_text(),"window=computer")
user.machine = src
user.set_machine(src)
onclose(user, "computer")
process()
+3 -3
View File
@@ -34,7 +34,7 @@
if(stat & (NOPOWER|BROKEN)) return
if(!isAI(user))
user.machine = src
user.set_machine(src)
var/list/L = list()
for (var/obj/machinery/camera/C in cameranet.cameras)
@@ -50,13 +50,13 @@
var/t = input(user, "Which camera should you change to?") as null|anything in D
if(!t)
user.machine = null
user.unset_machine()
return 0
var/obj/machinery/camera/C = D[t]
if(t == "Cancel")
user.machine = null
user.unset_machine()
return 0
if(C)
+2 -2
View File
@@ -46,7 +46,7 @@
if(..())
return
user.machine = src
user.set_machine(src)
var/dat
if (!( ticker ))
return
@@ -171,7 +171,7 @@
/obj/machinery/computer/card/Topic(href, href_list)
if(..())
return
usr.machine = src
usr.set_machine(src)
switch(href_list["choice"])
if ("modify")
if (modify)
+1 -1
View File
@@ -155,7 +155,7 @@
return attack_hand(user)
/obj/machinery/computer/cloning/attack_hand(mob/user as mob)
user.machine = src
user.set_machine(src)
add_fingerprint(user)
if(stat & (BROKEN|NOPOWER))
@@ -44,10 +44,10 @@
/obj/machinery/computer/communications/Topic(href, href_list)
if(..())
return
if (src.z > 6)
if (src.z > 1)
usr << "\red <b>Unable to establish a connection</b>: \black You're too far away from the station!"
return
usr.machine = src
usr.set_machine(src)
if(!href_list["operation"])
return
@@ -291,7 +291,7 @@
user << "\red <b>Unable to establish a connection</b>: \black You're too far away from the station!"
return
user.machine = src
user.set_machine(src)
var/dat = "<head><title>Communications Console</title></head><body>"
if (emergency_shuttle.online && emergency_shuttle.location==0)
var/timeleft = emergency_shuttle.timeleft()
+5
View File
@@ -48,6 +48,11 @@
else
return
bullet_act(var/obj/item/projectile/Proj)
if(prob(Proj.damage))
set_broken()
..()
blob_act()
if (prob(75))
+3 -3
View File
@@ -46,7 +46,7 @@
return
if( href_list["close"] )
usr << browse(null, "window=crewcomp")
usr.machine = null
usr.unset_machine()
return
if(href_list["update"])
src.updateDialog()
@@ -57,10 +57,10 @@
interact(mob/user)
if( (get_dist(src, user) > 1 ) || (stat & (BROKEN|NOPOWER)) )
if(!istype(user, /mob/living/silicon))
user.machine = null
user.unset_machine()
user << browse(null, "window=powcomp")
return
user.machine = src
user.set_machine(src)
src.scan()
var/t = "<TT><B>Crew Monitoring</B><HR>"
t += "<BR><A href='?src=\ref[src];update=1'>Refresh</A> "
+1 -1
View File
@@ -46,7 +46,7 @@
/obj/machinery/computer/hologram_comp/proc/show_console(var/mob/user as mob)
var/dat
user.machine = src
user.set_machine(src)
if (src.temp)
dat = text("[]<BR><BR><A href='?src=\ref[];temp=1'>Clear</A>", src.temp, src)
else
+1 -1
View File
@@ -125,7 +125,7 @@
if (!( data_core.medical.Find(src.active2) ))
src.active2 = null
if ((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon)))
usr.machine = src
usr.set_machine(src)
if (href_list["temp"])
src.temp = null
if (href_list["scan"])
+2 -2
View File
@@ -118,7 +118,7 @@
return
var/dat = "<HTML><BODY><TT><B>[title]</B>"
user.machine = src
user.set_machine(src)
if(connected)
var/d2
if(timing) //door controls do not need timers.
@@ -162,7 +162,7 @@
if(..())
return
if((usr.contents.Find(src) || (in_range(src, usr) && istype(loc, /turf))) || (istype(usr, /mob/living/silicon)))
usr.machine = src
usr.set_machine(src)
if(href_list["power"])
var/t = text2num(href_list["power"])
t = min(max(0.25, t), 16)
+3 -3
View File
@@ -72,12 +72,12 @@
if ( (get_dist(src, user) > 1 ) || (stat & (BROKEN|NOPOWER)) )
if (!istype(user, /mob/living/silicon))
user.machine = null
user.unset_machine()
user << browse(null, "window=powcomp")
return
user.machine = src
user.set_machine(src)
var/t = "<TT><B>Power Monitoring</B><HR>"
t += "<BR><HR><A href='?src=\ref[src];update=1'>Refresh</A>"
@@ -119,7 +119,7 @@
..()
if( href_list["close"] )
usr << browse(null, "window=powcomp")
usr.machine = null
usr.unset_machine()
return
if( href_list["update"] )
src.updateDialog()
+2 -2
View File
@@ -25,7 +25,7 @@
attack_hand(var/mob/user as mob)
if(..())
return
user.machine = src
user.set_machine(src)
var/dat
dat += "<B>Prisoner Implant Manager System</B><BR>"
if(screen == 0)
@@ -74,7 +74,7 @@
if(..())
return
if((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon)))
usr.machine = src
usr.set_machine(src)
if(href_list["inject1"])
var/obj/item/weapon/implant/I = locate(href_list["inject1"])
@@ -72,7 +72,7 @@ var/prison_shuttle_timeleft = 0
return
if(..())
return
user.machine = src
user.set_machine(src)
post_signal("prison")
var/dat
if (src.temp)
@@ -93,7 +93,7 @@ var/prison_shuttle_timeleft = 0
return
if ((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon)))
usr.machine = src
usr.set_machine(src)
if (href_list["sendtodock"])
if (!prison_can_move())
+2 -2
View File
@@ -31,7 +31,7 @@
if (src.z > 6)
user << "\red <b>Unable to establish a connection</b>: \black You're too far away from the station!"
return
user.machine = src
user.set_machine(src)
var/dat
if (src.temp)
dat = "<TT>[src.temp]</TT><BR><BR><A href='?src=\ref[src];temp=1'>Clear Screen</A>"
@@ -104,7 +104,7 @@
if(..())
return
if ((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon)))
usr.machine = src
usr.set_machine(src)
if (href_list["eject"])
src.temp = {"Destroy Robots?<BR>
+2 -2
View File
@@ -201,7 +201,7 @@ What a mess.*/
if (!( data_core.security.Find(active2) ))
active2 = null
if ((usr.contents.Find(src) || (in_range(src, usr) && istype(loc, /turf))) || (istype(usr, /mob/living/silicon)))
usr.machine = src
usr.set_machine(src)
switch(href_list["choice"])
// SORTING!
if("Sorting")
@@ -265,7 +265,7 @@ What a mess.*/
return
Perp = new/list()
t1 = lowertext(t1)
var/list/components = dd_text2list(t1, " ")
var/list/components = text2list(t1, " ")
if(components.len > 5)
return //Lets not let them search too greedily.
for(var/datum/data/record/R in data_core.general)
@@ -186,7 +186,7 @@ var/specops_shuttle_timeleft = 0
if(..())
return
user.machine = src
user.set_machine(src)
var/dat
if (temp)
dat = temp
@@ -205,7 +205,7 @@ var/specops_shuttle_timeleft = 0
return
if ((usr.contents.Find(src) || (in_range(src, usr) && istype(loc, /turf))) || (istype(usr, /mob/living/silicon)))
usr.machine = src
usr.set_machine(src)
if (href_list["sendtodock"])
if(!specops_shuttle_at_station|| specops_shuttle_moving_to_station || specops_shuttle_moving_to_centcom) return
@@ -24,7 +24,7 @@
proc/interact(mob/user)
usr.machine = src
usr.set_machine(src)
var/dat = "<HEAD><TITLE>Current Station Alerts</TITLE><META HTTP-EQUIV='Refresh' CONTENT='10'></HEAD><BODY>\n"
dat += "<A HREF='?src=\ref[user];mach_close=alerts'>Close</A><br><br>"
for (var/cat in src.alarms)
@@ -153,7 +153,7 @@ var/bomb_set = 1
if(..())
return
user.machine = src
user.set_machine(src)
var/dat
if (src.temp)
dat = src.temp
@@ -172,7 +172,7 @@ var/bomb_set = 1
return
if ((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon)))
usr.machine = src
usr.set_machine(src)
if (href_list["sendtospace"])
if(!syndicate_station_at_station|| syndicate_station_moving_to_station || syndicate_station_moving_to_space) return
@@ -199,7 +199,7 @@ var/syndicate_elite_shuttle_timeleft = 0
if(..())
return
user.machine = src
user.set_machine(src)
var/dat
if (temp)
dat = temp
@@ -218,7 +218,7 @@ var/syndicate_elite_shuttle_timeleft = 0
return
if ((usr.contents.Find(src) || (in_range(src, usr) && istype(loc, /turf))) || (istype(usr, /mob/living/silicon)))
usr.machine = src
usr.set_machine(src)
if (href_list["sendtodock"])
if(!syndicate_elite_shuttle_at_station|| syndicate_elite_shuttle_moving_to_station || syndicate_elite_shuttle_moving_to_mothership) return
+2 -2
View File
@@ -63,7 +63,7 @@
return
/obj/machinery/atmospherics/unary/cryo_cell/attack_hand(mob/user as mob)
user.machine = src
user.set_machine(src)
var/beaker_text = ""
var/health_text = ""
var/temp_text = ""
@@ -90,7 +90,7 @@
[beaker_text]<BR><BR>
<B>Current occupant:</B> [occupant ? "<BR>Name: [occupant]<BR>Health: [health_text]<BR>Oxygen deprivation: [round(occupant.getOxyLoss(),0.1)]<BR>Brute damage: [round(occupant.getBruteLoss(),0.1)]<BR>Fire damage: [round(occupant.getFireLoss(),0.1)]<BR>Toxin damage: [round(occupant.getToxLoss(),0.1)]<BR>Body temperature: [occupant.bodytemperature]" : "<FONT color=red>None</FONT>"]<BR>
"}
user.machine = src
user.set_machine(src)
user << browse(dat, "window=cryo")
onclose(user, "cryo")
+7 -9
View File
@@ -294,7 +294,6 @@ Airlock index -> wire color are { 9, 4, 6, 7, 5, 8, 1, 2, 3 }.
napalm.temperature = 400+T0C
target_tile.assume_air(napalm)
spawn (0) target_tile.hotspot_expose(temperature, 400)
new/obj/structure/door_assembly/door_assembly_0( src.loc )
for(var/obj/structure/falsewall/plasma/F in range(3,src))//Hackish as fuck, but until temperature_expose works, there is nothing I can do -Sieve
var/turf/T = get_turf(F)
T.ReplaceWithMineralWall("plasma")
@@ -304,6 +303,7 @@ Airlock index -> wire color are { 9, 4, 6, 7, 5, 8, 1, 2, 3 }.
W.ignite((temperature/4))//Added so that you can't set off a massive chain reaction with a small flame
for(var/obj/machinery/door/airlock/plasma/D in range(3,src))
D.ignite(temperature/4)
new/obj/structure/door_assembly/door_assembly_0( src.loc )
del (src)
/obj/machinery/door/airlock/clown
@@ -679,7 +679,7 @@ About the new airlock wires panel:
user << "Airlock AI control has been blocked with a firewall. Unable to hack."
//Separate interface for the AI.
user.machine = src
user.set_machine(src)
var/t1 = text("<B>Airlock Control</B><br>\n")
if(src.secondsMainPowerLost > 0)
if((!src.isWireCut(AIRLOCK_WIRE_MAIN_POWER1)) && (!src.isWireCut(AIRLOCK_WIRE_MAIN_POWER2)))
@@ -851,20 +851,18 @@ About the new airlock wires panel:
if(H.getBrainLoss() >= 60)
playsound(src.loc, 'sound/effects/bang.ogg', 25, 1)
if(!istype(H.head, /obj/item/clothing/head/helmet))
for(var/mob/M in viewers(src, null))
M << "\red [user] headbutts the airlock."
visible_message("\red [user] headbutts the airlock.")
var/datum/organ/external/affecting = H.get_organ("head")
H.Stun(8)
H.Weaken(5)
if(affecting.take_damage(10, 0))
H.UpdateDamageIcon()
else
for(var/mob/M in viewers(src, null))
M << "\red [user] headbutts the airlock. Good thing they're wearing a helmet."
visible_message("\red [user] headbutts the airlock. Good thing they're wearing a helmet.")
return
if(src.p_open)
user.machine = src
user.set_machine(src)
var/t1 = text("<B>Access Panel</B><br>\n")
//t1 += text("[]: ", airlockFeatureNames[airlockWireColorToIndex[9]])
@@ -917,11 +915,11 @@ About the new airlock wires panel:
if(href_list["close"])
usr << browse(null, "window=airlock")
if(usr.machine==src)
usr.machine = null
usr.unset_machine()
return
if((in_range(src, usr) && istype(src.loc, /turf)) && src.p_open)
usr.machine = src
usr.set_machine(src)
if(href_list["wires"])
var/t1 = text2num(href_list["wires"])
if(!( istype(usr.get_active_hand(), /obj/item/weapon/wirecutters) ))
+2 -2
View File
@@ -132,7 +132,7 @@
return
var/second = round(timeleft() % 60)
var/minute = round((timeleft() - second) / 60)
user.machine = src
user.set_machine(src)
var/dat = "<HTML><BODY><TT>"
dat += "<HR>Timer System:</hr>"
dat += "<b>Door [src.id] controls</b><br/>"
@@ -169,7 +169,7 @@
if(!src.allowed(usr))
return
usr.machine = src
usr.set_machine(src)
if(href_list["timing"])
src.timing = text2num(href_list["timing"])
else
+24 -20
View File
@@ -122,19 +122,8 @@
src.operating = 0
return 1
//When an object is thrown at the window
/obj/machinery/door/window/hitby(AM as mob|obj)
..()
for(var/mob/O in viewers(src, null))
O.show_message("\red <B>The glass door was hit by [AM].</B>", 1)
var/tforce = 0
if(ismob(AM))
tforce = 40
else
tforce = AM:throwforce
playsound(src.loc, 'sound/effects/Glasshit.ogg', 100, 1)
src.health = max(0, src.health - tforce)
/obj/machinery/door/window/proc/take_damage(var/damage)
src.health = max(0, src.health - damage)
if (src.health <= 0)
new /obj/item/weapon/shard(src.loc)
var/obj/item/weapon/cable_coil/CC = new /obj/item/weapon/cable_coil(src.loc)
@@ -142,6 +131,24 @@
src.density = 0
del(src)
return
/obj/machinery/door/window/bullet_act(var/obj/item/projectile/Proj)
if(Proj.damage)
take_damage(round(Proj.damage / 2))
..()
//When an object is thrown at the window
/obj/machinery/door/window/hitby(AM as mob|obj)
..()
visible_message("\red <B>The glass door was hit by [AM].</B>", 1)
var/tforce = 0
if(ismob(AM))
tforce = 40
else
tforce = AM:throwforce
playsound(src.loc, 'sound/effects/Glasshit.ogg', 100, 1)
take_damage(tforce)
//..() //Does this really need to be here twice? The parent proc doesn't even do anything yet. - Nodrak
return
@@ -155,8 +162,7 @@
return
src.health = max(0, src.health - 25)
playsound(src.loc, 'sound/effects/Glasshit.ogg', 75, 1)
for(var/mob/O in viewers(src, null))
O.show_message("\red <B>[user] smashes against the [src.name].</B>", 1)
visible_message("\red <B>[user] smashes against the [src.name].</B>", 1)
if (src.health <= 0)
new /obj/item/weapon/shard(src.loc)
var/obj/item/weapon/cable_coil/CC = new /obj/item/weapon/cable_coil(src.loc)
@@ -185,9 +191,8 @@
spark_system.start()
playsound(src.loc, "sparks", 50, 1)
playsound(src.loc, 'sound/weapons/blade1.ogg', 50, 1)
for(var/mob/O in viewers(user, 5))
O.show_message(text("\blue The glass door was sliced open by []!", user), 1, text("\red You hear glass being sliced and sparks flying."), 2)
flick(text("[]spark", src.base_state), src)
visible_message("\blue The glass door was sliced open by [user]!")
flick("[src.base_state]spark", src)
sleep(6)
open()
return 1
@@ -198,8 +203,7 @@
if(I.damtype == BRUTE || I.damtype == BURN)
src.health = max(0, src.health - aforce)
playsound(src.loc, 'sound/effects/Glasshit.ogg', 75, 1)
for(var/mob/O in viewers(src, null))
O.show_message("\red <B>[src] was hit by [I].</B>", 1)
visible_message("\red <B>[src] was hit by [I].</B>")
if (src.health <= 0)
new /obj/item/weapon/shard(src.loc)
var/obj/item/weapon/cable_coil/CC = new /obj/item/weapon/cable_coil(src.loc)
@@ -29,7 +29,7 @@ obj/machinery/embedded_controller
attack_hand(mob/user)
user << browse(return_text(), "window=computer")
user.machine = src
user.set_machine(src)
onclose(user, "computer")
update_icon()
@@ -53,7 +53,7 @@ obj/machinery/embedded_controller
program.receive_user_command(href_list["command"])
spawn(5) program.process()
usr.machine = src
usr.set_machine(src)
spawn(5) src.updateDialog()
process()
+2 -4
View File
@@ -131,12 +131,10 @@
if(src.operating)
return
if(!src.occupant)
for(var/mob/M in viewers(src, null))
M.show_message("\red You hear a loud metallic grinding sound.", 1)
visible_message("\red You hear a loud metallic grinding sound.")
return
use_power(1000)
for(var/mob/M in viewers(src, null))
M.show_message("\red You hear a loud squelchy grinding sound.", 1)
visible_message("\red You hear a loud squelchy grinding sound.")
src.operating = 1
update_icon()
var/sourcename = src.occupant.real_name
+2 -2
View File
@@ -59,7 +59,7 @@
return 0
/obj/machinery/juicer/attack_hand(mob/user as mob)
user.machine = src
user.set_machine(src)
interact(user)
/obj/machinery/juicer/proc/interact(mob/user as mob) // The microwave Menu
@@ -105,7 +105,7 @@
/obj/machinery/juicer/Topic(href, href_list)
if(..())
return
usr.machine = src
usr.set_machine(src)
switch(href_list["action"])
if ("juice")
juice()
+2 -2
View File
@@ -139,7 +139,7 @@
return 0
/obj/machinery/microwave/attack_hand(mob/user as mob)
user.machine = src
user.set_machine(src)
interact(user)
/*******************
@@ -357,7 +357,7 @@
if(..())
return
usr.machine = src
usr.set_machine(src)
if(src.operating)
src.updateUsrDialog()
return
+2 -2
View File
@@ -82,7 +82,7 @@
return 0
/obj/machinery/smartfridge/attack_hand(mob/user as mob)
user.machine = src
user.set_machine(src)
interact(user)
/*******************
@@ -115,7 +115,7 @@
if(..())
return
usr.machine = src
usr.set_machine(src)
var/N = href_list["vend"]
+2 -2
View File
@@ -249,7 +249,7 @@
attack_hand(mob/user as mob)
if(stat & (BROKEN|NOPOWER))
return
user.machine = src
user.set_machine(src)
var/dat = "<B>Magnetic Control Console</B><BR><BR>"
if(!autolink)
dat += {"
@@ -277,7 +277,7 @@
Topic(href, href_list)
if(stat & (BROKEN|NOPOWER))
return
usr.machine = src
usr.set_machine(src)
src.add_fingerprint(usr)
if(href_list["radio-op"])
+2 -2
View File
@@ -39,7 +39,7 @@
codes = new()
var/list/entries = dd_text2list(codes_txt, ";") // entries are separated by semicolons
var/list/entries = text2list(codes_txt, ";") // entries are separated by semicolons
for(var/e in entries)
var/index = findtext(e, "=") // format is "key=value"
@@ -186,7 +186,7 @@ Transponder Codes:<UL>"}
return
if ((in_range(src, usr) && istype(src.loc, /turf)) || (istype(usr, /mob/living/silicon)))
if(open && !locked)
usr.machine = src
usr.set_machine(src)
if (href_list["freq"])
freq = sanitize_frequency(freq + text2num(href_list["freq"]))
+2 -2
View File
@@ -414,7 +414,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
if(..())
return
if ((usr.contents.Find(src) || ((get_dist(src, usr) <= 1) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon)))
usr.machine = src
usr.set_machine(src)
if(href_list["set_channel_name"])
src.channel_name = strip_html_simple(input(usr, "Provide a Feed Channel Name", "Network Channel Handler", ""))
while (findtext(src.channel_name," ") == 1)
@@ -810,7 +810,7 @@ obj/item/weapon/newspaper/Topic(href, href_list)
var/mob/living/U = usr
..()
if ((src in U.contents) || ( istype(loc, /turf) && in_range(src, U) ))
U.machine = src
U.set_machine(src)
if(href_list["next_page"])
if(curr_page==src.pages+1)
return //Don't need that at all, but anyway.
+2 -2
View File
@@ -4,7 +4,7 @@
set name = ".map"
set category = "Object"
set src in view(1)
usr.machine = src
usr.set_machine(src)
if(!mapping) return
log_game("[usr]([usr.key]) used station map L[z] in [src.loc.loc]")
@@ -356,5 +356,5 @@ proc/getb(col)
del(O)
mapobjs = null
src.machine = null
src.unset_machine()
+2 -2
View File
@@ -50,7 +50,7 @@
if(unwrenched || !usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr))
usr << browse(null, "window=pipedispenser")
return
usr.machine = src
usr.set_machine(src)
src.add_fingerprint(usr)
if(href_list["make"])
if(!wait)
@@ -160,7 +160,7 @@ Nah
/obj/machinery/pipedispenser/disposal/Topic(href, href_list)
if(..())
return
usr.machine = src
usr.set_machine(src)
src.add_fingerprint(usr)
if(href_list["dmake"])
if(unwrenched || !usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr))
+2 -2
View File
@@ -234,7 +234,7 @@ Status: []<BR>"},
/obj/machinery/porta_turret/Topic(href, href_list)
if (..())
return
usr.machine = src
usr.set_machine(src)
src.add_fingerprint(usr)
if ((href_list["power"]) && (src.allowed(usr)))
if(anchored) // you can't turn a turret on/off if it's not anchored/secured
@@ -987,7 +987,7 @@ Status: []<BR>"},
/obj/machinery/porta_turret_cover/Topic(href, href_list)
if (..())
return
usr.machine = src
usr.set_machine(src)
Parent_Turret.add_fingerprint(usr)
src.add_fingerprint(usr)
if ((href_list["power"]) && (Parent_Turret.allowed(usr)))
+1 -1
View File
@@ -197,7 +197,7 @@ var/list/obj/machinery/requests_console/allConsoles = list()
/obj/machinery/requests_console/Topic(href, href_list)
if(..()) return
usr.machine = src
usr.set_machine(src)
add_fingerprint(usr)
if(reject_bad_text(href_list["write"]))
+1 -1
View File
@@ -75,7 +75,7 @@ Please wait until completion...</TT><BR>
if (..())
return
usr.machine = src
usr.set_machine(src)
src.add_fingerprint(usr)
if (href_list["make"])
+4 -4
View File
@@ -69,7 +69,7 @@
update_icon()
if(!open && user.machine == src)
user << browse(null, "window=spaceheater")
user.machine = null
user.unset_machine()
else
..()
return
@@ -94,7 +94,7 @@
dat += " [set_temperature]&deg;C "
dat += "<A href='?src=\ref[src];op=temp;val=5'>+</A><BR>"
user.machine = src
user.set_machine(src)
user << browse("<HEAD><TITLE>Space Heater Control Panel</TITLE></HEAD><TT>[dat]</TT>", "window=spaceheater")
onclose(user, "spaceheater")
@@ -112,7 +112,7 @@
if (usr.stat)
return
if ((in_range(src, usr) && istype(src.loc, /turf)) || (istype(usr, /mob/living/silicon)))
usr.machine = src
usr.set_machine(src)
switch(href_list["op"])
@@ -145,7 +145,7 @@
updateDialog()
else
usr << browse(null, "window=spaceheater")
usr.machine = null
usr.unset_machine()
return
+1 -1
View File
@@ -155,7 +155,7 @@
if(..())
return
if ((usr.contents.Find(src) || ((get_dist(src, usr) <= 1) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon/ai)))
usr.machine = src
usr.set_machine(src)
if (href_list["toggleUV"])
src.toggleUV(usr)
src.updateUsrDialog()
+1 -1
View File
@@ -20,7 +20,7 @@
var/charges = 1
attack_hand(var/mob/user as mob)
usr.machine = src
usr.set_machine(src)
var/dat = "<font color=#005500><i>Scanning [pick("retina pattern", "voice print", "fingerprints", "dna sequence")]...<br>Identity confirmed,<br></i></font>"
if(istype(user, /mob/living/carbon/human) || istype(user, /mob/living/silicon/ai))
if(is_special_character(user))
+1 -2
View File
@@ -102,6 +102,7 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept
// In case message_delay is left on 1, otherwise it won't reset the list and people can't say the same thing twice anymore.
if(message_delay)
message_delay = 0
..()
/*
@@ -366,7 +367,6 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept
// --- Filter the message; place it in quotes apply a verb ---
if(!M) return
var/quotedmsg = M.say_quote(message)
// --- This following recording is intended for research and feedback in the use of department radio channels ---
@@ -496,7 +496,6 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept
/proc/Broadcast_SimpleMessage(var/source, var/frequency, var/text, var/data, var/mob/M, var/compression, var/level)
/* ###### Prepare the radio connection ###### */
if(!M)
+2 -2
View File
@@ -18,7 +18,7 @@
attack_hand(mob/user as mob)
if(stat & (BROKEN|NOPOWER))
return
user.machine = src
user.set_machine(src)
var/dat = "<TITLE>Telecommunication Server Monitor</TITLE><center><b>Telecommunications Server Monitor</b></center>"
switch(screen)
@@ -139,7 +139,7 @@
add_fingerprint(usr)
usr.machine = src
usr.set_machine(src)
if(href_list["viewserver"])
screen = 1
@@ -108,7 +108,7 @@
var/obj/item/device/multitool/P = get_multitool(user)
user.machine = src
user.set_machine(src)
var/dat
dat = "<font face = \"Courier\"><HEAD><TITLE>[src.name]</TITLE></HEAD><center><H3>[src.name] Access</H3></center>"
dat += "<br>[temp]<br>"
@@ -395,7 +395,7 @@
src.Options_Topic(href, href_list)
usr.machine = src
usr.set_machine(src)
src.add_fingerprint(usr)
updateUsrDialog()
+2 -2
View File
@@ -22,7 +22,7 @@
attack_hand(mob/user as mob)
if(stat & (BROKEN|NOPOWER))
return
user.machine = src
user.set_machine(src)
var/dat = "<TITLE>Telecommunications Monitor</TITLE><center><b>Telecommunications Monitor</b></center>"
switch(screen)
@@ -71,7 +71,7 @@
add_fingerprint(usr)
usr.machine = src
usr.set_machine(src)
if(href_list["viewmachine"])
screen = 1
@@ -73,7 +73,7 @@
attack_hand(mob/user as mob)
if(stat & (BROKEN|NOPOWER))
return
user.machine = src
user.set_machine(src)
var/dat = "<TITLE>Telecommunication Traffic Control</TITLE><center><b>Telecommunications Traffic Control</b></center>"
switch(screen)
@@ -123,7 +123,7 @@
add_fingerprint(usr)
usr.machine = src
usr.set_machine(src)
if(!src.allowed(usr) && !emagged)
usr << "\red ACCESS DENIED."
return
+21 -18
View File
@@ -7,25 +7,12 @@
anchored = 1
density = 1
var/transform_dead = 0
var/transform_standing = 0
/obj/machinery/transformer/New()
// On us
..()
var/turf/T = loc
if(T)
// Spawn Conveyour Belts
//East
var/turf/east = locate(T.x + 1, T.y, T.z)
if(istype(east, /turf/simulated/floor))
new /obj/machinery/conveyor(east, WEST, 1)
// West
var/turf/west = locate(T.x - 1, T.y, T.z)
if(istype(west, /turf/simulated/floor))
new /obj/machinery/conveyor(west, WEST, 1)
// On us
new /obj/machinery/conveyor(T, WEST, 1)
new /obj/machinery/conveyor(loc, WEST, 1)
/obj/machinery/transformer/Bumped(var/atom/movable/AM)
// HasEntered didn't like people lying down.
@@ -33,7 +20,7 @@
// Only humans can enter from the west side, while lying down.
var/move_dir = get_dir(loc, AM.loc)
var/mob/living/carbon/human/H = AM
if(H.lying && move_dir == EAST)// || move_dir == WEST)
if((transform_standing || H.lying) && move_dir == EAST)// || move_dir == WEST)
AM.loc = src.loc
transform(AM)
@@ -50,4 +37,20 @@
spawn(50) // So he can't jump out the gate right away.
playsound(src.loc, 'sound/machines/ping.ogg', 50, 0)
if(robot)
robot.lying = 0
robot.lying = 0
/obj/machinery/transformer/conveyor/New()
..()
var/turf/T = loc
if(T)
// Spawn Conveyour Belts
//East
var/turf/east = locate(T.x + 1, T.y, T.z)
if(istype(east, /turf/simulated/floor))
new /obj/machinery/conveyor(east, WEST, 1)
// West
var/turf/west = locate(T.x - 1, T.y, T.z)
if(istype(west, /turf/simulated/floor))
new /obj/machinery/conveyor(west, WEST, 1)
+4 -4
View File
@@ -356,7 +356,7 @@
user << "<span class='notice'>You [ locked ? "lock" : "unlock"] the panel.</span>"
if (locked)
if (user.machine==src)
user.machine = null
user.unset_machine()
user << browse(null, "window=turretid")
else
if (user.machine==src)
@@ -374,11 +374,11 @@
if ( get_dist(src, user) > 0 )
if ( !issilicon(user) )
user << "<span class='notice'>You are too far away.</span>"
user.machine = null
user.unset_machine()
user << browse(null, "window=turretid")
return
user.machine = src
user.set_machine(src)
var/loc = src.loc
if (istype(loc, /turf))
loc = loc:loc
@@ -515,7 +515,7 @@
attack_hand(mob/user as mob)
user.machine = src
user.set_machine(src)
var/dat = {"<html>
<head><title>[src] Control</title></head>
<body>
+9 -9
View File
@@ -13,13 +13,13 @@
/obj/machinery/vending/New()
..()
spawn(4)
src.slogan_list = dd_text2list(src.product_slogans, ";")
var/list/temp_paths = dd_text2list(src.product_paths, ";")
var/list/temp_amounts = dd_text2list(src.product_amounts, ";")
var/list/temp_hidden = dd_text2list(src.product_hidden, ";")
var/list/temp_hideamt = dd_text2list(src.product_hideamt, ";")
var/list/temp_coin = dd_text2list(src.product_coin, ";")
var/list/temp_coin_amt = dd_text2list(src.product_coin_amt, ";")
src.slogan_list = text2list(src.product_slogans, ";")
var/list/temp_paths = text2list(src.product_paths, ";")
var/list/temp_amounts = text2list(src.product_amounts, ";")
var/list/temp_hidden = text2list(src.product_hidden, ";")
var/list/temp_hideamt = text2list(src.product_hideamt, ";")
var/list/temp_coin = text2list(src.product_coin, ";")
var/list/temp_coin_amt = text2list(src.product_coin_amt, ";")
//Little sanity check here
if ((isnull(temp_paths)) || (isnull(temp_amounts)) || (temp_paths.len != temp_amounts.len) || (temp_hidden.len != temp_hideamt.len))
stat |= BROKEN
@@ -128,7 +128,7 @@
/obj/machinery/vending/attack_hand(mob/user as mob)
if(stat & (BROKEN|NOPOWER))
return
user.machine = src
user.set_machine(src)
if(src.seconds_electrified != 0)
if(src.shock(user, 100))
@@ -223,7 +223,7 @@
if ((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))))
usr.machine = src
usr.set_machine(src)
if ((href_list["vend"]) && (src.vend_ready))
if ((!src.allowed(usr)) && (!src.emagged) && (src.wires & WIRE_SCANID)) //For SECURE VENDING MACHINES YEAH
+1 -1
View File
@@ -11,7 +11,7 @@
var/insisting = 0
/obj/machinery/wish_granter/attack_hand(var/mob/user as mob)
usr.machine = src
usr.set_machine(src)
if(charges <= 0)
user << "The Wish Granter lies silent."
+1 -1
View File
@@ -538,7 +538,7 @@
return
if(!operation_allowed(user))
return
user.machine = src
user.set_machine(src)
var/turf/exit = get_step(src,SOUTH)
if(exit.density)
src.visible_message("\icon[src] <b>[src]</b> beeps, \"Error! Part outlet is obstructed\".")
+8 -24
View File
@@ -440,17 +440,13 @@
src.check_for_internal_damage(list(MECHA_INT_TEMP_CONTROL,MECHA_INT_TANK_BREACH,MECHA_INT_CONTROL_LOST))
playsound(src.loc, 'sound/weapons/slash.ogg', 50, 1, -1)
user << "\red You slash at the armored suit!"
for (var/mob/V in viewers(src))
if(V.client && !(V.blinded))
V.show_message("\red The [user] slashes at [src.name]'s armor!", 1)
visible_message("\red The [user] slashes at [src.name]'s armor!")
else
src.log_append_to_last("Armor saved.")
playsound(src.loc, 'sound/weapons/slash.ogg', 50, 1, -1)
user << "\green Your claws had no effect!"
src.occupant_message("\blue The [user]'s claws are stopped by the armor.")
for (var/mob/V in viewers(src))
if(V.client && !(V.blinded))
V.show_message("\blue The [user] rebounds off [src.name]'s armor!", 1)
visible_message("\blue The [user] rebounds off [src.name]'s armor!")
return
@@ -463,17 +459,13 @@
var/damage = rand(user.melee_damage_lower, user.melee_damage_upper)
src.take_damage(damage)
src.check_for_internal_damage(list(MECHA_INT_TEMP_CONTROL,MECHA_INT_TANK_BREACH,MECHA_INT_CONTROL_LOST))
for (var/mob/V in viewers(src))
if(V.client && !(V.blinded))
V.show_message("\red <B>[user]</B> [user.attacktext] [src]!", 1)
visible_message("\red <B>[user]</B> [user.attacktext] [src]!")
user.attack_log += text("\[[time_stamp()]\] <font color='red'>attacked [src.name]</font>")
else
src.log_append_to_last("Armor saved.")
playsound(src.loc, 'sound/weapons/slash.ogg', 50, 1, -1)
src.occupant_message("\blue The [user]'s attack is stopped by the armor.")
for (var/mob/V in viewers(src))
if(V.client && !(V.blinded))
V.show_message("\blue The [user] rebounds off [src.name]'s armor!", 1)
visible_message("\blue The [user] rebounds off [src.name]'s armor!")
user.attack_log += text("\[[time_stamp()]\] <font color='red'>attacked [src.name]</font>")
return
@@ -486,15 +478,11 @@
src.take_damage(damage)
src.check_for_internal_damage(list(MECHA_INT_TEMP_CONTROL,MECHA_INT_TANK_BREACH,MECHA_INT_CONTROL_LOST))
playsound(src.loc, "sparks", 50, 1)
for (var/mob/V in viewers(src))
if(V.client && !(V.blinded))
V.show_message("\red <b>[C]</b> hits [src.name]'s armor!", 1)
visible_message("\red <b>[C]</b> hits [src.name]'s armor!")
else
src.log_append_to_last("Armor saved.")
src.occupant_message("\blue <b>[C]'s</b> attack is stopped by the armor.")
for (var/mob/V in viewers(src))
if(V.client && !(V.blinded))
V.show_message("\blue <b>[C]</b> rebounds off [src.name]'s armor!", 1)
visible_message("\blue <b>[C]</b> rebounds off [src.name]'s armor!")
return
@@ -999,9 +987,7 @@
return
// usr << "You start climbing into [src.name]"
for (var/mob/V in viewers(src))
if(V.client && !(V.blinded))
V.show_message("\blue [usr] starts to climb into [src.name]", 1)
visible_message("\blue [usr] starts to climb into [src.name]")
if(enter_after(40,usr))
if(!src.occupant)
@@ -1050,9 +1036,7 @@
//Added a message here since people assume their first click failed or something./N
// user << "Installing MMI, please stand by."
for (var/mob/V in viewers(src))
if(V.client && !(V.blinded))
V.show_message("\blue [usr] starts to insert an MMI into [src.name]", 1)
visible_message("\blue [usr] starts to insert an MMI into [src.name]")
if(enter_after(40,user))
if(!occupant)
+1 -1
View File
@@ -17,7 +17,7 @@
attack_hand(var/mob/user as mob)
if(..())
return
user.machine = src
user.set_machine(src)
var/dat = "<html><head><title>[src.name]</title><style>h3 {margin: 0px; padding: 0px;}</style></head><body>"
if(screen == 0)
dat += "<h3>Tracking beacons data</h3>"
+46 -11
View File
@@ -28,7 +28,7 @@
density = 1
opacity = 1
anchored = 1
var/health = 50
var/health = 200
//var/mob/living/affecting = null
wall
@@ -41,7 +41,17 @@
desc = "Purple slime just thin enough to let light pass through."
icon_state = "resinmembrane"
opacity = 0
health = 20
health = 120
/obj/effect/alien/resin/New()
..()
var/turf/T = get_turf(src)
T.thermal_conductivity = WALL_HEAT_TRANSFER_COEFFICIENT
/obj/effect/alien/resin/Del()
var/turf/T = get_turf(src)
T.thermal_conductivity = initial(T.thermal_conductivity)
..()
/obj/effect/alien/resin/proc/healthcheck()
if(health <=0)
@@ -113,7 +123,7 @@
for(var/mob/O in oviewers(src))
O.show_message("\red [usr] claws at the resin!", 1)
playsound(loc, 'sound/effects/attackblob.ogg', 100, 1)
health -= rand(10, 20)
health -= rand(40, 60)
if(health <= 0)
usr << "\green You slice the [name] to pieces."
for(var/mob/O in oviewers(src))
@@ -299,24 +309,49 @@ Alien plants should do something if theres a lot of poison
opacity = 0
anchored = 1
var/obj/target
var/atom/target
var/ticks = 0
var/target_strength = 0
/obj/effect/alien/acid/New(loc, target)
..(loc)
src.target = target
if(isturf(target)) // Turf take twice as long to take down.
target_strength = 8
else
target_strength = 4
tick()
/obj/effect/alien/acid/proc/tick()
if(!target)
del(src)
ticks += 1
for(var/mob/O in hearers(src, null))
O.show_message("\green <B>[src.target] sizzles and begins to melt under the bubbling mess of acid!</B>", 1)
if(prob(ticks*10))
if(ticks >= target_strength)
for(var/mob/O in hearers(src, null))
O.show_message("\green <B>[src.target] collapses under its own weight into a puddle of goop and undigested debris!</B>", 1)
// if(target.occupant) //I tried to fix mechas-with-humans-getting-deleted. Made them unacidable for now.
// target.ex_act(1)
del(target)
if(istype(target, /turf/simulated/wall)) // I hate turf code.
var/turf/simulated/wall/W = target
W.dismantle_wall(1)
else
del(target)
del(src)
return
spawn(rand(200, 400)) tick()
switch(target_strength - ticks)
if(6)
visible_message("\green <B>[src.target] is holding up against the acid!</B>")
if(4)
visible_message("\green <B>[src.target]\s structure is being melted by the acid!</B>")
if(2)
visible_message("\green <B>[src.target] is struggling to withstand the acid!</B>")
if(0 to 1)
visible_message("\green <B>[src.target] begins to crumble under the acid!</B>")
spawn(rand(150, 200)) tick()
/*
* Egg
+7 -7
View File
@@ -240,7 +240,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
//NOTE: graphic resources are loaded on client login
/obj/item/device/pda/attack_self(mob/user as mob)
user.machine = src
user.set_machine(src)
if(active_uplink_check(user))
return
@@ -445,14 +445,14 @@ var/global/list/obj/item/device/pda/PDAs = list()
if ( !(U.stat || U.restrained()) )
add_fingerprint(U)
U.machine = src
U.set_machine(src)
switch(href_list["choice"])
//BASIC FUNCTIONS===================================
if("Close")//Self explanatory
U.machine = null
U.unset_machine()
U << browse(null, "window=pda")
return
if("Refresh")//Refresh, goes to the end of the proc.
@@ -646,7 +646,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
else
U << "PDA not found."
else
U.machine = null
U.unset_machine()
U << browse(null, "window=pda")
return
@@ -667,11 +667,11 @@ var/global/list/obj/item/device/pda/PDAs = list()
cartridge.mode = mode
cartridge.unlock()
else//If can't interact.
U.machine = null
U.unset_machine()
U << browse(null, "window=pda")
return
else//If not in range or not using the pda.
U.machine = null
U.unset_machine()
U << browse(null, "window=pda")
return
@@ -687,7 +687,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
if(U.machine == src && href_list["skiprefresh"]!="1")//Final safety.
attack_self(U)//It auto-closes the menu prior if the user is not in range and so on.
else
U.machine = null
U.unset_machine()
U << browse(null, "window=pda")
return
+1 -1
View File
@@ -651,7 +651,7 @@ Code:
..()
if (!usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr))
usr.machine = null
usr.unset_machine()
usr << browse(null, "window=pda")
return
+5 -5
View File
@@ -35,7 +35,7 @@
attack_self(mob/user)
if (!in_range(src, user))
return
user.machine = src
user.set_machine(src)
var/dat = "<TT><B>Intelicard</B><BR>"
var/laws
for(var/mob/living/silicon/ai/A in src)
@@ -84,16 +84,16 @@
var/mob/U = usr
if (!in_range(src, U)||U.machine!=src)//If they are not in range of 1 or less or their machine is not the card (ie, clicked on something else).
U << browse(null, "window=aicard")
U.machine = null
U.unset_machine()
return
add_fingerprint(U)
U.machine = src
U.set_machine(src)
switch(href_list["choice"])//Now we switch based on choice.
if ("Close")
U << browse(null, "window=aicard")
U.machine = null
U.unset_machine()
return
if ("Wipe")
@@ -101,7 +101,7 @@
if(confirm == "Yes")
if(isnull(src)||!in_range(src, U)||U.machine!=src)
U << browse(null, "window=aicard")
U.machine = null
U.unset_machine()
return
else
flush = 1
+1 -1
View File
@@ -24,7 +24,7 @@
/obj/item/device/paicard/attack_self(mob/user)
if (!in_range(src, user))
return
user.machine = src
user.set_machine(src)
var/dat = "<TT><B>Personal AI Device</B><BR>"
if(pai && (!pai.master_dna || !pai.master))
dat += "<a href='byond://?src=\ref[src];setdna=1'>Imprint Master DNA</a><br>"
@@ -44,7 +44,7 @@
if(usr.stat || usr.restrained())
return
if(((istype(usr, /mob/living/carbon/human) && ((!( ticker ) || (ticker && ticker.mode != "monkey")) && usr.contents.Find(src))) || (usr.contents.Find(master) || (in_range(src, usr) && istype(loc, /turf)))))
usr.machine = src
usr.set_machine(src)
if(href_list["freq"])
var/new_frequency = sanitize_frequency(frequency + text2num(href_list["freq"]))
set_frequency(new_frequency)
@@ -106,7 +106,7 @@
if(!istype(user, /mob/living/carbon/human))
return
user.machine = src
user.set_machine(src)
var/dat = {"<TT>
<A href='?src=\ref[src];power=1'>Turn [on ? "Off" : "On"]</A><BR>
<B>Frequency/Code</B> for electropack:<BR>
@@ -166,7 +166,7 @@
/obj/item/device/radio/headset/attackby(obj/item/weapon/W as obj, mob/user as mob)
// ..()
user.machine = src
user.set_machine(src)
if (!( istype(W, /obj/item/weapon/screwdriver) || (istype(W, /obj/item/device/encryptionkey/ ))))
return
@@ -71,7 +71,7 @@ var/GLOBAL_RADIO_TYPE = 1 // radio type to use
/obj/item/device/radio/attack_self(mob/user as mob)
user.machine = src
user.set_machine(src)
interact(user)
/obj/item/device/radio/proc/interact(mob/user as mob)
@@ -129,7 +129,7 @@ var/GLOBAL_RADIO_TYPE = 1 // radio type to use
if (!(issilicon(usr) || (usr.contents.Find(src) || ( in_range(src, usr) && istype(loc, /turf) ))))
usr << browse(null, "window=radio")
return
usr.machine = src
usr.set_machine(src)
if (href_list["track"])
var/mob/target = locate(href_list["track"])
var/mob/living/silicon/ai/A = locate(href_list["track2"])
@@ -663,7 +663,7 @@ var/GLOBAL_RADIO_TYPE = 1 // radio type to use
/obj/item/device/radio/attackby(obj/item/weapon/W as obj, mob/user as mob)
..()
user.machine = src
user.set_machine(src)
if (!( istype(W, /obj/item/weapon/screwdriver) ))
return
b_stat = !( b_stat )
@@ -695,7 +695,7 @@ var/GLOBAL_RADIO_TYPE = 1 // radio type to use
/obj/item/device/radio/borg/attackby(obj/item/weapon/W as obj, mob/user as mob)
// ..()
user.machine = src
user.set_machine(src)
if (!( istype(W, /obj/item/weapon/screwdriver) || (istype(W, /obj/item/device/encryptionkey/ ))))
return
@@ -63,7 +63,7 @@
/obj/item/device/transfer_valve/attack_self(mob/user as mob)
user.machine = src
user.set_machine(src)
var/dat = {"<B> Valve properties: </B>
<BR> <B> Attachment one:</B> [tank_one] [tank_one ? "<A href='?src=\ref[src];tankone=1'>Remove</A>" : ""]
<BR> <B> Attachment two:</B> [tank_two] [tank_two ? "<A href='?src=\ref[src];tanktwo=1'>Remove</A>" : ""]
+5 -2
View File
@@ -21,7 +21,7 @@ A list of items and costs is stored under the datum of every game mode, alongsid
items = dd_replacetext(ticker.mode.uplink_items, "\n", "") // Getting the text string of items
else
items = dd_replacetext(item_data)
ItemList = dd_text2list(src.items, ";") // Parsing the items text string
ItemList = text2list(src.items, ";") // Parsing the items text string
uses = ticker.mode.uplink_uses
//Let's build a menu!
@@ -314,7 +314,7 @@ A list of items and costs is stored under the datum of every game mode, alongsid
return 0
if ((usr.contents.Find(src.loc) || (in_range(src.loc, usr) && istype(src.loc.loc, /turf))))
usr.machine = src
usr.set_machine(src)
if(href_list["lock"])
toggle()
usr << browse(null, "window=hidden")
@@ -370,3 +370,6 @@ A list of items and costs is stored under the datum of every game mode, alongsid
..()
hidden_uplink = new(src)
hidden_uplink.uses = 10
+5 -5
View File
@@ -202,10 +202,10 @@
for(var/line in song.lines)
//world << line
for(var/beat in dd_text2list(lowertext(line), ","))
for(var/beat in text2list(lowertext(line), ","))
//world << "beat: [beat]"
var/list/notes = dd_text2list(beat, "/")
for(var/note in dd_text2list(notes[1], "-"))
var/list/notes = text2list(beat, "/")
for(var/note in text2list(notes[1], "-"))
//world << "note: [note]"
if(!playing || !isliving(loc))//If the violin is playing, or isn't held by a person
playing = 0
@@ -237,7 +237,7 @@
/obj/item/device/violin/attack_self(mob/user as mob)
if(!isliving(user) || user.stat || user.restrained() || user.lying) return
user.machine = src
user.set_machine(src)
var/dat = "<HEAD><TITLE>Violin</TITLE></HEAD><BODY>"
@@ -367,7 +367,7 @@
//split into lines
spawn()
var/list/lines = dd_text2list(t, "\n")
var/list/lines = text2list(t, "\n")
var/tempo = 5
if(copytext(lines[1],1,6) == "BPM: ")
tempo = 600 / text2num(copytext(lines[1],6))
+1 -1
View File
@@ -39,7 +39,7 @@
return
if (!src || amount<=0)
user << browse(null, "window=stack")
user.machine = src //for correct work of onclose
user.set_machine(src) //for correct work of onclose
var/t1 = text("<HTML><HEAD><title>Constructions from []</title></HEAD><body><TT>Amount Left: []<br>", src, src.amount)
for(var/i=1;i<=recipes.len,i++)
var/datum/stack_recipe/R = recipes[i]
+1 -1
View File
@@ -102,7 +102,7 @@
if ((usr.stat || usr.restrained()))
return
if (usr.contents.Find(src))
usr.machine = src
usr.set_machine(src)
if (href_list["remove"])
var/obj/item/P = locate(href_list["remove"])
if ((P && P.loc == src))
@@ -136,7 +136,7 @@
/obj/item/weapon/flamethrower/attack_self(mob/user as mob)
if(user.stat || user.restrained() || user.lying) return
user.machine = src
user.set_machine(src)
if(!ptank)
user << "<span class='notice'>Attach a plasma tank first!</span>"
return
@@ -148,11 +148,11 @@
/obj/item/weapon/flamethrower/Topic(href,href_list[])
if(href_list["close"])
usr.machine = null
usr.unset_machine()
usr << browse(null, "window=flamethrower")
return
if(usr.stat || usr.restrained() || usr.lying) return
usr.machine = src
usr.set_machine(src)
if(href_list["light"])
if(!ptank) return
if(ptank.air_contents.toxins < 1) return
@@ -168,7 +168,7 @@
usr.put_in_hands(ptank)
ptank = null
lit = 0
usr.machine = null
usr.unset_machine()
usr << browse(null, "window=flamethrower")
for(var/mob/M in viewers(1, loc))
if((M.client && M.machine == src))

Some files were not shown because too many files have changed in this diff Show More