mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-27 22:17:32 +01:00
@@ -337,8 +337,8 @@
|
||||
welded = 0
|
||||
update_icon()
|
||||
else
|
||||
|
||||
to_chat(user, "<span class='notice'>The welding tool needs to be on to start this task.</span>")
|
||||
return 1
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You need more welding fuel to complete this task.</span>")
|
||||
return 1
|
||||
@@ -366,7 +366,7 @@
|
||||
to_chat(user, "You can't shove that down there when it is closed")
|
||||
else
|
||||
to_chat(user, "The vent is welded.")
|
||||
return
|
||||
return 1
|
||||
if(istype(W, /obj/item/device/multitool))
|
||||
update_multitool_menu(user)
|
||||
return 1
|
||||
|
||||
@@ -108,11 +108,11 @@ var/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","Epsilon"
|
||||
if(identity_theft.target && identity_theft.target.current)
|
||||
identity_theft.target_real_name = kill_objective.target.current.real_name //Whoops, forgot this.
|
||||
var/mob/living/carbon/human/H = identity_theft.target.current
|
||||
if(check_species_absorb(H.species)) // For species that can't be absorbed - should default to an escape objective
|
||||
return
|
||||
else
|
||||
if(can_absorb_species(H.species)) // For species that can't be absorbed - should default to an escape objective
|
||||
identity_theft.explanation_text = "Escape on the shuttle or an escape pod with the identity of [identity_theft.target_real_name], the [identity_theft.target.assigned_role] while wearing their identification card."
|
||||
changeling.objectives += identity_theft
|
||||
changeling.objectives += identity_theft
|
||||
else
|
||||
qdel(identity_theft)
|
||||
|
||||
if(!(locate(/datum/objective/escape) in changeling.objectives))
|
||||
if(prob(70))
|
||||
@@ -316,5 +316,5 @@ var/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","Epsilon"
|
||||
|
||||
return 1
|
||||
|
||||
/proc/check_species_absorb(datum/species/S)
|
||||
/proc/can_absorb_species(datum/species/S)
|
||||
return !(S.flags & NO_DNA)
|
||||
|
||||
@@ -339,10 +339,10 @@ var/global/list/all_cults = list()
|
||||
|
||||
if("harvest")
|
||||
if(harvested > harvest_target)
|
||||
explanation = "Offer [harvest_target] humans for [ticker.mode.cultdat.entity_name]'s first meal of the day. ([harvested] eaten) <font color='green'><B>Success!</B></font>"
|
||||
explanation = "Offer [harvest_target] humans for [ticker.mode.cultdat.entity_name]'s first meal of the day. ([harvested] sacrificed) <font color='green'><B>Success!</B></font>"
|
||||
feedback_add_details("cult_objective","cult_harvest|SUCCESS")
|
||||
else
|
||||
explanation = "Offer [harvest_target] humans for [ticker.mode.cultdat.entity_name]'s first meal of the day. ([harvested] eaten) <font color='red'><B>Fail!</B></font>"
|
||||
explanation = "Offer [harvest_target] humans for [ticker.mode.cultdat.entity_name]'s first meal of the day. ([harvested] sacrificed) <font color='red'><B>Fail!</B></font>"
|
||||
feedback_add_details("cult_objective","cult_harvest|FAIL")
|
||||
|
||||
if("hijack")
|
||||
|
||||
@@ -427,6 +427,9 @@ var/list/teleport_runes = list()
|
||||
if(is_sacrifice_target(T.mind))
|
||||
sacrifice_fulfilled = 1
|
||||
new /obj/effect/overlay/temp/cult/sac(loc)
|
||||
if(ticker && ticker.mode && ticker.mode.name == "cult")
|
||||
var/datum/game_mode/cult/cult_mode = ticker.mode
|
||||
cult_mode.harvested++
|
||||
for(var/M in invokers)
|
||||
if(sacrifice_fulfilled)
|
||||
to_chat(M, "<span class='cultlarge'>\"Yes! This is the one I desire! You have done well.\"</span>")
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
invisibility = INVISIBILITY_REVENANT
|
||||
health = INFINITY //Revenants don't use health, they use essence instead
|
||||
maxHealth = INFINITY
|
||||
see_invisible = INVISIBILITY_REVENANT
|
||||
see_invisible = SEE_INVISIBLE_OBSERVER_NOLIGHTING
|
||||
see_in_dark = 8
|
||||
universal_understand = 1
|
||||
response_help = "passes through"
|
||||
|
||||
@@ -110,6 +110,8 @@
|
||||
message = "<span class='revennotice'>You toggle your night vision.</span>"
|
||||
action_icon_state = "r_nightvision"
|
||||
action_background_icon_state = "bg_revenant"
|
||||
non_night_vision = INVISIBILITY_REVENANT
|
||||
night_vision = SEE_INVISIBLE_OBSERVER_NOLIGHTING
|
||||
|
||||
//Transmit: the revemant's only direct way to communicate. Sends a single message silently to a single mob
|
||||
/obj/effect/proc_holder/spell/targeted/revenant_transmit
|
||||
|
||||
@@ -234,7 +234,6 @@
|
||||
screen = MED_DATA_MAIN
|
||||
|
||||
if(authenticated)
|
||||
var/incapable = (usr.stat || usr.restrained() || (!in_range(src, usr) && !issilicon(usr)))
|
||||
if(href_list["logout"])
|
||||
authenticated = null
|
||||
screen = null
|
||||
@@ -281,7 +280,7 @@
|
||||
setTemp("<h3>Are you sure you wish to delete all records?</h3>", buttons)
|
||||
|
||||
if(href_list["field"])
|
||||
if(incapable)
|
||||
if(..())
|
||||
return 1
|
||||
var/a1 = active1
|
||||
var/a2 = active2
|
||||
@@ -289,7 +288,7 @@
|
||||
if("fingerprint")
|
||||
if(istype(active1, /datum/data/record))
|
||||
var/t1 = copytext(trim(sanitize(input("Please input fingerprint hash:", "Med. records", active1.fields["fingerprint"], null) as text)), 1, MAX_MESSAGE_LEN)
|
||||
if(!t1 || incapable || active1 != a1)
|
||||
if(!t1 || ..() || active1 != a1)
|
||||
return 1
|
||||
active1.fields["fingerprint"] = t1
|
||||
if("sex")
|
||||
@@ -301,61 +300,61 @@
|
||||
if("age")
|
||||
if(istype(active1, /datum/data/record))
|
||||
var/t1 = input("Please input age:", "Med. records", active1.fields["age"], null) as num
|
||||
if(!t1 || incapable || active1 != a1)
|
||||
if(!t1 || ..() || active1 != a1)
|
||||
return 1
|
||||
active1.fields["age"] = t1
|
||||
if("mi_dis")
|
||||
if(istype(active2, /datum/data/record))
|
||||
var/t1 = copytext(trim(sanitize(input("Please input minor disabilities list:", "Med. records", active2.fields["mi_dis"], null) as text)), 1, MAX_MESSAGE_LEN)
|
||||
if(!t1 || incapable || active2 != a2)
|
||||
if(!t1 || ..() || active2 != a2)
|
||||
return 1
|
||||
active2.fields["mi_dis"] = t1
|
||||
if("mi_dis_d")
|
||||
if(istype(active2, /datum/data/record))
|
||||
var/t1 = copytext(trim(sanitize(input("Please summarize minor dis.:", "Med. records", active2.fields["mi_dis_d"], null) as message)), 1, MAX_MESSAGE_LEN)
|
||||
if(!t1 || incapable || active2 != a2)
|
||||
if(!t1 || ..() || active2 != a2)
|
||||
return 1
|
||||
active2.fields["mi_dis_d"] = t1
|
||||
if("ma_dis")
|
||||
if(istype(active2, /datum/data/record))
|
||||
var/t1 = copytext(trim(sanitize(input("Please input major diabilities list:", "Med. records", active2.fields["ma_dis"], null) as text)), 1, MAX_MESSAGE_LEN)
|
||||
if(!t1 || incapable || active2 != a2)
|
||||
if(!t1 || ..() || active2 != a2)
|
||||
return 1
|
||||
active2.fields["ma_dis"] = t1
|
||||
if("ma_dis_d")
|
||||
if(istype(active2, /datum/data/record))
|
||||
var/t1 = copytext(trim(sanitize(input("Please summarize major dis.:", "Med. records", active2.fields["ma_dis_d"], null) as message)), 1, MAX_MESSAGE_LEN)
|
||||
if(!t1 || incapable || active2 != a2)
|
||||
if(!t1 || ..() || active2 != a2)
|
||||
return 1
|
||||
active2.fields["ma_dis_d"] = t1
|
||||
if("alg")
|
||||
if(istype(active2, /datum/data/record))
|
||||
var/t1 = copytext(trim(sanitize(input("Please state allergies:", "Med. records", active2.fields["alg"], null) as text)), 1, MAX_MESSAGE_LEN)
|
||||
if(!t1 || incapable || active2 != a2)
|
||||
if(!t1 || ..() || active2 != a2)
|
||||
return 1
|
||||
active2.fields["alg"] = t1
|
||||
if("alg_d")
|
||||
if(istype(active2, /datum/data/record))
|
||||
var/t1 = copytext(trim(sanitize(input("Please summarize allergies:", "Med. records", active2.fields["alg_d"], null) as message)), 1, MAX_MESSAGE_LEN)
|
||||
if(!t1 || incapable || active2 != a2)
|
||||
if(!t1 || ..() || active2 != a2)
|
||||
return 1
|
||||
active2.fields["alg_d"] = t1
|
||||
if("cdi")
|
||||
if(istype(active2, /datum/data/record))
|
||||
var/t1 = copytext(trim(sanitize(input("Please state diseases:", "Med. records", active2.fields["cdi"], null) as text)), 1, MAX_MESSAGE_LEN)
|
||||
if(!t1 || incapable || active2 != a2)
|
||||
if(!t1 || ..() || active2 != a2)
|
||||
return 1
|
||||
active2.fields["cdi"] = t1
|
||||
if("cdi_d")
|
||||
if(istype(active2, /datum/data/record))
|
||||
var/t1 = copytext(trim(sanitize(input("Please summarize diseases:", "Med. records", active2.fields["cdi_d"], null) as message)), 1, MAX_MESSAGE_LEN)
|
||||
if(!t1 || incapable || active2 != a2)
|
||||
if(!t1 || ..() || active2 != a2)
|
||||
return 1
|
||||
active2.fields["cdi_d"] = t1
|
||||
if("notes")
|
||||
if(istype(active2, /datum/data/record))
|
||||
var/t1 = copytext(html_encode(trim(input("Please summarize notes:", "Med. records", html_decode(active2.fields["notes"]), null) as message)), 1, MAX_MESSAGE_LEN)
|
||||
if(!t1 || incapable || active2 != a2)
|
||||
if(!t1 || ..() || active2 != a2)
|
||||
return 1
|
||||
active2.fields["notes"] = t1
|
||||
if("p_stat")
|
||||
@@ -390,21 +389,21 @@
|
||||
if("b_dna")
|
||||
if(istype(active2, /datum/data/record))
|
||||
var/t1 = copytext(trim(sanitize(input("Please input DNA hash:", "Med. records", active2.fields["b_dna"], null) as text)), 1, MAX_MESSAGE_LEN)
|
||||
if(!t1 || incapable || active2 != a2)
|
||||
if(!t1 || ..() || active2 != a2)
|
||||
return 1
|
||||
active2.fields["b_dna"] = t1
|
||||
if("vir_name")
|
||||
var/datum/data/record/v = locate(href_list["edit_vir"])
|
||||
if(v)
|
||||
var/t1 = copytext(trim(sanitize(input("Please input pathogen name:", "VirusDB", v.fields["name"], null) as text)), 1, MAX_MESSAGE_LEN)
|
||||
if(!t1 || incapable || active1 != a1)
|
||||
if(!t1 || ..() || active1 != a1)
|
||||
return 1
|
||||
v.fields["name"] = t1
|
||||
if("vir_desc")
|
||||
var/datum/data/record/v = locate(href_list["edit_vir"])
|
||||
if(v)
|
||||
var/t1 = copytext(trim(sanitize(input("Please input information about pathogen:", "VirusDB", v.fields["description"], null) as message)), 1, MAX_MESSAGE_LEN)
|
||||
if(!t1 || incapable || active1 != a1)
|
||||
if(!t1 || ..() || active1 != a1)
|
||||
return 1
|
||||
v.fields["description"] = t1
|
||||
|
||||
@@ -454,7 +453,7 @@
|
||||
return 1
|
||||
var/a2 = active2
|
||||
var/t1 = copytext(trim(sanitize(input("Add Comment:", "Med. records", null, null) as message)), 1, MAX_MESSAGE_LEN)
|
||||
if(!t1 || incapable || active2 != a2)
|
||||
if(!t1 || ..() || active2 != a2)
|
||||
return 1
|
||||
active2.fields["comments"] += "Made by [authenticated] ([rank]) on [current_date_string] [worldtime2text()]<BR>[t1]"
|
||||
|
||||
@@ -465,7 +464,7 @@
|
||||
|
||||
if(href_list["search"])
|
||||
var/t1 = input("Search String: (Name, DNA, or ID)", "Med. records", null, null) as text
|
||||
if(!t1 || incapable)
|
||||
if(!t1 || ..())
|
||||
return 1
|
||||
active1 = null
|
||||
active2 = null
|
||||
|
||||
@@ -120,7 +120,7 @@
|
||||
else
|
||||
security["empty"] = 1
|
||||
return data
|
||||
|
||||
|
||||
/obj/machinery/computer/secure_data/Topic(href, href_list)
|
||||
if(..())
|
||||
return 1
|
||||
@@ -139,10 +139,12 @@
|
||||
if("del_all2")
|
||||
for(var/datum/data/record/R in data_core.security)
|
||||
qdel(R)
|
||||
update_all_mob_security_hud()
|
||||
setTemp("<h3>All records deleted.</h3>")
|
||||
if("del_r2")
|
||||
if(active2)
|
||||
qdel(active2)
|
||||
update_all_mob_security_hud()
|
||||
if("del_rg2")
|
||||
if(active1)
|
||||
for(var/datum/data/record/R in data_core.medical)
|
||||
@@ -153,6 +155,7 @@
|
||||
if(active2)
|
||||
qdel(active2)
|
||||
active2 = null
|
||||
update_all_mob_security_hud()
|
||||
screen = SEC_DATA_R_LIST
|
||||
if("criminal")
|
||||
if(active2)
|
||||
@@ -168,8 +171,7 @@
|
||||
if("released")
|
||||
active2.fields["criminal"] = "Released"
|
||||
|
||||
for(var/mob/living/carbon/human/H in mob_list)
|
||||
H.sec_hud_set_security_status()
|
||||
update_all_mob_security_hud()
|
||||
if("rank")
|
||||
if(active1)
|
||||
active1.fields["rank"] = temp_href[2]
|
||||
@@ -208,7 +210,6 @@
|
||||
screen = SEC_DATA_R_LIST
|
||||
|
||||
if(authenticated)
|
||||
var/incapable = (usr.stat || usr.restrained() || (!in_range(src, usr) && !issilicon(usr)))
|
||||
if(href_list["logout"])
|
||||
authenticated = null
|
||||
screen = null
|
||||
@@ -247,24 +248,6 @@
|
||||
active2 = M
|
||||
screen = SEC_DATA_RECORD
|
||||
|
||||
/*else if("s_fingerprint")
|
||||
var/t1 = input("Search String: (Fingerprint)", "Secure. records", null, null) as text
|
||||
if(!t1 || usr.stat || !authenticated || usr.restrained() || (!in_range(src, usr) && (!issilicon(usr)))
|
||||
return
|
||||
active1 = null
|
||||
active2 = null
|
||||
t1 = lowertext(t1)
|
||||
for(var/datum/data/record/R in data_core.general)
|
||||
if(lowertext(R.fields["fingerprint"]) == t1)
|
||||
active1 = R
|
||||
if(!active1)
|
||||
setTemp("Could not locate record [t1].")
|
||||
else
|
||||
for(var/datum/data/record/E in data_core.security)
|
||||
if((E.fields["name"] == active1.fields["name"] && E.fields["id"] == active1.fields["id"]))
|
||||
active2 = E
|
||||
screen = SEC_DATA_RECORD */
|
||||
|
||||
else if(href_list["del_all"])
|
||||
var/list/buttons = list()
|
||||
buttons[++buttons.len] = list("name" = "Yes", "icon" = "check", "href" = "del_all2=1", "status" = null)
|
||||
@@ -363,7 +346,7 @@
|
||||
if(istype(active2, /datum/data/record))
|
||||
var/a2 = active2
|
||||
var/t1 = copytext(trim(sanitize(input("Add Comment:", "Secure. records", null, null) as message)), 1, MAX_MESSAGE_LEN)
|
||||
if(!t1 || incapable || active2 != a2)
|
||||
if(!t1 || ..() || active2 != a2)
|
||||
return 1
|
||||
active2.fields["comments"] += "Made by [authenticated] ([rank]) on [current_date_string] [worldtime2text()]<BR>[t1]"
|
||||
|
||||
@@ -373,7 +356,7 @@
|
||||
active2.fields["comments"] -= active2.fields["comments"][index]
|
||||
|
||||
if(href_list["field"])
|
||||
if(incapable)
|
||||
if(..())
|
||||
return 1
|
||||
var/a1 = active1
|
||||
var/a2 = active2
|
||||
@@ -381,7 +364,7 @@
|
||||
if("name")
|
||||
if(istype(active1, /datum/data/record))
|
||||
var/t1 = reject_bad_name(input("Please input name:", "Secure. records", active1.fields["name"], null) as text)
|
||||
if(!t1 || !length(trim(t1)) || incapable || active1 != a1)
|
||||
if(!t1 || !length(trim(t1)) || ..() || active1 != a1)
|
||||
return 1
|
||||
active1.fields["name"] = t1
|
||||
if(istype(active2, /datum/data/record))
|
||||
@@ -389,7 +372,7 @@
|
||||
if("id")
|
||||
if(istype(active1, /datum/data/record))
|
||||
var/t1 = copytext(trim(sanitize(input("Please input id:", "Secure. records", active1.fields["id"], null) as text)), 1, MAX_MESSAGE_LEN)
|
||||
if(!t1 || incapable || active1 != a1)
|
||||
if(!t1 || ..() || active1 != a1)
|
||||
return 1
|
||||
active1.fields["id"] = t1
|
||||
if(istype(active2, /datum/data/record))
|
||||
@@ -397,7 +380,7 @@
|
||||
if("fingerprint")
|
||||
if(istype(active1, /datum/data/record))
|
||||
var/t1 = copytext(trim(sanitize(input("Please input fingerprint hash:", "Secure. records", active1.fields["fingerprint"], null) as text)), 1, MAX_MESSAGE_LEN)
|
||||
if(!t1 || incapable || active1 != a1)
|
||||
if(!t1 || ..() || active1 != a1)
|
||||
return 1
|
||||
active1.fields["fingerprint"] = t1
|
||||
if("sex")
|
||||
@@ -409,37 +392,37 @@
|
||||
if("age")
|
||||
if(istype(active1, /datum/data/record))
|
||||
var/t1 = input("Please input age:", "Secure. records", active1.fields["age"], null) as num
|
||||
if(!t1 || incapable || active1 != a1)
|
||||
if(!t1 || ..() || active1 != a1)
|
||||
return 1
|
||||
active1.fields["age"] = t1
|
||||
if("mi_crim")
|
||||
if(istype(active2, /datum/data/record))
|
||||
var/t1 = copytext(trim(sanitize(input("Please input minor crimes list:", "Secure. records", active2.fields["mi_crim"], null) as text)), 1, MAX_MESSAGE_LEN)
|
||||
if(!t1 || incapable || active2 != a2)
|
||||
if(!t1 || ..() || active2 != a2)
|
||||
return 1
|
||||
active2.fields["mi_crim"] = t1
|
||||
if("mi_crim_d")
|
||||
if(istype(active2, /datum/data/record))
|
||||
var/t1 = copytext(trim(sanitize(input("Please summarize minor crimes:", "Secure. records", active2.fields["mi_crim_d"], null) as message)), 1, MAX_MESSAGE_LEN)
|
||||
if(!t1 || incapable || active2 != a2)
|
||||
if(!t1 || ..() || active2 != a2)
|
||||
return 1
|
||||
active2.fields["mi_crim_d"] = t1
|
||||
if("ma_crim")
|
||||
if(istype(active2, /datum/data/record))
|
||||
var/t1 = copytext(trim(sanitize(input("Please input major crimes list:", "Secure. records", active2.fields["ma_crim"], null) as text)), 1, MAX_MESSAGE_LEN)
|
||||
if(!t1 || incapable || active2 != a2)
|
||||
if(!t1 || ..() || active2 != a2)
|
||||
return 1
|
||||
active2.fields["ma_crim"] = t1
|
||||
if("ma_crim_d")
|
||||
if(istype(active2, /datum/data/record))
|
||||
var/t1 = copytext(trim(sanitize(input("Please summarize major crimes:", "Secure. records", active2.fields["ma_crim_d"], null) as message)), 1, MAX_MESSAGE_LEN)
|
||||
if(!t1 || incapable || active2 != a2)
|
||||
if(!t1 || ..() || active2 != a2)
|
||||
return 1
|
||||
active2.fields["ma_crim_d"] = t1
|
||||
if("notes")
|
||||
if(istype(active2, /datum/data/record))
|
||||
var/t1 = copytext(html_encode(trim(input("Please summarize notes:", "Secure. records", html_decode(active2.fields["notes"]), null) as message)), 1, MAX_MESSAGE_LEN)
|
||||
if(!t1 || incapable || active2 != a2)
|
||||
if(!t1 || ..() || active2 != a2)
|
||||
return 1
|
||||
active2.fields["notes"] = t1
|
||||
if("criminal")
|
||||
@@ -464,13 +447,17 @@
|
||||
if("species")
|
||||
if(istype(active1, /datum/data/record))
|
||||
var/t1 = copytext(trim(sanitize(input("Please enter race:", "General records", active1.fields["species"], null) as message)), 1, MAX_MESSAGE_LEN)
|
||||
if(!t1 || incapable || active1 != a1)
|
||||
if(!t1 || ..() || active1 != a1)
|
||||
return 1
|
||||
active1.fields["species"] = t1
|
||||
return 1
|
||||
|
||||
/obj/machinery/computer/secure_data/proc/setTemp(text, list/buttons = list())
|
||||
temp = list("text" = text, "buttons" = buttons, "has_buttons" = buttons.len > 0)
|
||||
|
||||
/obj/machinery/computer/secure_data/proc/update_all_mob_security_hud()
|
||||
for(var/mob/living/carbon/human/H in mob_list)
|
||||
H.sec_hud_set_security_status()
|
||||
|
||||
/obj/machinery/computer/secure_data/proc/create_record_photo(datum/data/record/R)
|
||||
// basically copy-pasted from the camera code but different enough that it has to be redone
|
||||
|
||||
@@ -873,14 +873,11 @@ About the new airlock wires panel:
|
||||
|
||||
qdel(src)
|
||||
return
|
||||
else if(istype(C, /obj/item/weapon/crowbar/power))
|
||||
if(istype(C, /obj/item/weapon/crowbar/power) && density)
|
||||
if(isElectrified())
|
||||
shock(user, 100)//it's like sticking a fork in a power socket
|
||||
return
|
||||
|
||||
if(!density)//already open
|
||||
return
|
||||
|
||||
if(locked)
|
||||
to_chat(user, "<span class='warning'>The bolts are down, it won't budge!</span>")
|
||||
return
|
||||
@@ -900,7 +897,8 @@ About the new airlock wires panel:
|
||||
open(2)
|
||||
if(density && !open(2))
|
||||
to_chat(user, "<span class='warning'>Despite your attempts, the [src] refuses to open.</span>")
|
||||
else if(arePowerSystemsOn())
|
||||
return
|
||||
if(arePowerSystemsOn())
|
||||
to_chat(user, "\blue The airlock's motors resist your efforts to force it.")
|
||||
else if(locked)
|
||||
to_chat(user, "\blue The airlock's bolts prevent it from being forced.")
|
||||
|
||||
@@ -37,6 +37,7 @@
|
||||
Radio = new /obj/item/device/radio(src)
|
||||
Radio.listening = 0
|
||||
Radio.config(list("Security" = 0))
|
||||
Radio.follow_target = src
|
||||
|
||||
pixel_x = ((dir & 3)? (0) : (dir == 4 ? 32 : -32))
|
||||
pixel_y = ((dir & 3)? (dir ==1 ? 24 : -32) : (0))
|
||||
|
||||
@@ -268,9 +268,9 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
|
||||
dat += "</td><td width='405px' height='25px' valign='left'>"
|
||||
dat += "<center>"
|
||||
dat += "Slot <b>[slot_name]</b> - "
|
||||
dat += "<a href=\"byond://?src=[user.UID()];preference=open_load_dialog\">Load slot</a> - "
|
||||
dat += "<a href=\"byond://?src=[user.UID()];preference=save\">Save slot</a> - "
|
||||
dat += "<a href=\"byond://?src=[user.UID()];preference=reload\">Reload slot</a>"
|
||||
dat += "<a href=\"byond://?_src_=prefs;preference=open_load_dialog\">Load slot</a> - "
|
||||
dat += "<a href=\"byond://?_src_=prefs;preference=save\">Save slot</a> - "
|
||||
dat += "<a href=\"byond://?_src_=prefs;preference=reload\">Reload slot</a>"
|
||||
dat += "</center>"
|
||||
dat += "</td></tr></table>"
|
||||
dat += "<table width='100%'><tr><td width='405px' height='200px' valign='top'>"
|
||||
@@ -294,7 +294,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
|
||||
dat += "<b>Skin Tone:</b> <a href='?_src_=prefs;preference=s_tone;task=input'>[species == "Vox" ? "[s_tone]" : "[-s_tone + 35]/220"]</a><br>"
|
||||
dat += "<b>Disabilities:</b> <a href='?_src_=prefs;preference=disabilities'>\[Set\]</a><br>"
|
||||
dat += "<b>Nanotrasen Relation:</b> <a href ='?_src_=prefs;preference=nt_relation;task=input'>[nanotrasen_relation]</a><br>"
|
||||
dat += "<a href='byond://?src=[user.UID()];preference=flavor_text;task=input'>Set Flavor Text</a><br>"
|
||||
dat += "<a href='byond://?_src_=prefs;preference=flavor_text;task=input'>Set Flavor Text</a><br>"
|
||||
if(lentext(flavor_text) <= 40)
|
||||
if(!lentext(flavor_text)) dat += "\[...\]<br>"
|
||||
else dat += "[flavor_text]<br>"
|
||||
@@ -358,7 +358,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
|
||||
if(jobban_isbanned(user, "Records"))
|
||||
dat += "<b>You are banned from using character records.</b><br>"
|
||||
else
|
||||
dat += "<a href=\"byond://?src=[user.UID()];preference=records;record=1\">Character Records</a><br>"
|
||||
dat += "<a href=\"byond://?_src_=prefs;preference=records;record=1\">Character Records</a><br>"
|
||||
|
||||
dat += "<h2>Limbs</h2>"
|
||||
if(species in list("Unathi")) //Species with alt heads.
|
||||
@@ -658,7 +658,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
|
||||
else
|
||||
HTML += " <font color=red>\[No]</font></a>"
|
||||
if(job.alt_titles)
|
||||
HTML += "<br><b><a class='white' href=\"byond://?src=[user.UID()];preference=job;task=alt_title;job=\ref[job]\">\[[GetPlayerAltTitle(job)]\]</a></b></td></tr>"
|
||||
HTML += "<br><b><a class='white' href=\"byond://?_src_=prefs;preference=job;task=alt_title;job=\ref[job]\">\[[GetPlayerAltTitle(job)]\]</a></b></td></tr>"
|
||||
HTML += "</td></tr>"
|
||||
continue
|
||||
/*
|
||||
@@ -674,7 +674,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
|
||||
HTML += "<font color=[prefLevelColor]>[prefLevelLabel]</font></a>"
|
||||
|
||||
if(job.alt_titles)
|
||||
HTML += "<br><b><a class='white' href=\"byond://?src=[user.UID()];preference=job;task=alt_title;job=\ref[job]\">\[[GetPlayerAltTitle(job)]\]</a></b></td></tr>"
|
||||
HTML += "<br><b><a class='white' href=\"?_src_=prefs;preference=job;task=alt_title;job=\ref[job]\">\[[GetPlayerAltTitle(job)]\]</a></b></td></tr>"
|
||||
|
||||
|
||||
HTML += "</td></tr>"
|
||||
@@ -812,12 +812,8 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
|
||||
|
||||
/datum/preferences/proc/SetDisabilities(mob/user)
|
||||
var/HTML = "<body>"
|
||||
HTML += "<tt><center>"
|
||||
|
||||
// AUTOFIXED BY fix_string_idiocy.py
|
||||
// C:\Users\Rob\Documents\Projects\vgstation13\code\modules\client\preferences.dm:474: HTML += "<tt><center>"
|
||||
HTML += {"<tt><center>
|
||||
<b>Choose disabilities</b><ul>"}
|
||||
// END AUTOFIX
|
||||
HTML += ShowDisabilityState(user,DISABILITY_FLAG_NEARSIGHTED,"Needs Glasses")
|
||||
HTML += ShowDisabilityState(user,DISABILITY_FLAG_FAT,"Obese")
|
||||
HTML += ShowDisabilityState(user,DISABILITY_FLAG_EPILEPTIC,"Seizures")
|
||||
@@ -827,50 +823,46 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
|
||||
HTML += ShowDisabilityState(user,DISABILITY_FLAG_MUTE,"Mute")
|
||||
|
||||
|
||||
// AUTOFIXED BY fix_string_idiocy.py
|
||||
// C:\Users\Rob\Documents\Projects\vgstation13\code\modules\client\preferences.dm:481: HTML += "</ul>"
|
||||
HTML += {"</ul>
|
||||
<a href=\"?_src_=prefs;task=close;preference=disabilities\">\[Done\]</a>
|
||||
<a href=\"?_src_=prefs;task=reset;preference=disabilities\">\[Reset\]</a>
|
||||
</center></tt>"}
|
||||
// END AUTOFIX
|
||||
user << browse(null, "window=preferences")
|
||||
user << browse(HTML, "window=disabil;size=350x300")
|
||||
return
|
||||
|
||||
var/datum/browser/popup = new(user, "disabil", "<div align='center'>Choose Disabilities</div>", 350, 300)
|
||||
popup.set_content(HTML)
|
||||
popup.open(0)
|
||||
|
||||
/datum/preferences/proc/SetRecords(mob/user)
|
||||
var/HTML = "<body>"
|
||||
HTML += "<tt><center>"
|
||||
HTML += "<b>Set Character Records</b><br>"
|
||||
|
||||
HTML += "<a href=\"byond://?src=[user.UID()];preference=records;task=med_record\">Medical Records</a><br>"
|
||||
HTML += "<a href=\"byond://?_src_=prefs;preference=records;task=med_record\">Medical Records</a><br>"
|
||||
|
||||
if(lentext(med_record) <= 40)
|
||||
HTML += "[med_record]"
|
||||
else
|
||||
HTML += "[copytext(med_record, 1, 37)]..."
|
||||
|
||||
HTML += "<br><br><a href=\"byond://?src=[user.UID()];preference=records;task=gen_record\">Employment Records</a><br>"
|
||||
HTML += "<br><a href=\"byond://?_src_=prefs;preference=records;task=gen_record\">Employment Records</a><br>"
|
||||
|
||||
if(lentext(gen_record) <= 40)
|
||||
HTML += "[gen_record]"
|
||||
else
|
||||
HTML += "[copytext(gen_record, 1, 37)]..."
|
||||
|
||||
HTML += "<br><br><a href=\"byond://?src=[user.UID()];preference=records;task=sec_record\">Security Records</a><br>"
|
||||
HTML += "<br><a href=\"byond://?_src_=prefs;preference=records;task=sec_record\">Security Records</a><br>"
|
||||
|
||||
if(lentext(sec_record) <= 40)
|
||||
HTML += "[sec_record]<br>"
|
||||
else
|
||||
HTML += "[copytext(sec_record, 1, 37)]...<br>"
|
||||
|
||||
HTML += "<br>"
|
||||
HTML += "<a href=\"byond://?src=[user.UID()];preference=records;records=-1\">\[Done\]</a>"
|
||||
HTML += "<a href=\"byond://?_src_=prefs;preference=records;records=-1\">\[Done\]</a>"
|
||||
HTML += "</center></tt>"
|
||||
|
||||
user << browse(null, "window=preferences")
|
||||
user << browse(HTML, "window=records;size=350x300")
|
||||
return
|
||||
var/datum/browser/popup = new(user, "records", "<div align='center'>Character Records</div>", 350, 300)
|
||||
popup.set_content(HTML)
|
||||
popup.open(0)
|
||||
|
||||
/datum/preferences/proc/GetPlayerAltTitle(datum/job/job)
|
||||
return player_alt_titles.Find(job.title) > 0 \
|
||||
@@ -2236,7 +2228,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
|
||||
dat += "<a href='?_src_=prefs;preference=changeslot;num=[i];'>[name]</a><br>"
|
||||
|
||||
dat += "<hr>"
|
||||
dat += "<a href='byond://?src=[user.UID()];preference=close_load_dialog'>Close</a><br>"
|
||||
dat += "<a href='byond://?_src_=prefs;preference=close_load_dialog'>Close</a><br>"
|
||||
dat += "</center></tt>"
|
||||
// user << browse(dat, "window=saves;size=300x390")
|
||||
var/datum/browser/popup = new(user, "saves", "<div align='center'>Character Saves</div>", 300, 390)
|
||||
|
||||
@@ -39,6 +39,7 @@
|
||||
|
||||
search_objects = 1 // So that it can see through walls
|
||||
|
||||
see_invisible = SEE_INVISIBLE_OBSERVER_NOLIGHTING
|
||||
sight = SEE_SELF|SEE_MOBS|SEE_OBJS|SEE_TURFS
|
||||
anchored = 1
|
||||
status_flags = GODMODE // Cannot push also
|
||||
@@ -56,9 +57,6 @@
|
||||
AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/blindness(null))
|
||||
AddSpell(new /obj/effect/proc_holder/spell/targeted/night_vision(null))
|
||||
|
||||
// Give nightvision
|
||||
see_invisible = SEE_INVISIBLE_OBSERVER_NOLIGHTING
|
||||
|
||||
// Set creator
|
||||
if(creator)
|
||||
src.creator = creator
|
||||
@@ -190,7 +188,7 @@
|
||||
|
||||
//Toggle Night Vision
|
||||
/obj/effect/proc_holder/spell/targeted/night_vision
|
||||
name = "Toggle Nightvision \[ON\]"
|
||||
name = "Toggle Nightvision"
|
||||
desc = "Toggle your nightvision mode."
|
||||
|
||||
charge_max = 10
|
||||
@@ -199,17 +197,15 @@
|
||||
message = "<span class='notice'>You toggle your night vision!</span>"
|
||||
range = -1
|
||||
include_user = 1
|
||||
var/non_night_vision = SEE_INVISIBLE_LIVING
|
||||
var/night_vision = SEE_INVISIBLE_OBSERVER_NOLIGHTING
|
||||
|
||||
/obj/effect/proc_holder/spell/targeted/night_vision/cast(list/targets, mob/user = usr)
|
||||
|
||||
for(var/mob/living/target in targets)
|
||||
if(target.see_invisible == SEE_INVISIBLE_LIVING)
|
||||
target.see_invisible = SEE_INVISIBLE_OBSERVER_NOLIGHTING
|
||||
name = "Toggle Nightvision \[ON\]"
|
||||
if(target.see_invisible == non_night_vision)
|
||||
target.see_invisible = night_vision
|
||||
else
|
||||
target.see_invisible = SEE_INVISIBLE_LIVING
|
||||
name = "Toggle Nightvision \[OFF\]"
|
||||
return
|
||||
target.see_invisible = non_night_vision
|
||||
|
||||
/mob/living/simple_animal/hostile/statue/sentience_act()
|
||||
faction -= "neutral"
|
||||
|
||||
@@ -712,16 +712,17 @@
|
||||
/mob/living/simple_animal/proc/sentience_act() //Called when a simple animal gains sentience via gold slime potion
|
||||
return
|
||||
|
||||
/mob/living/simple_animal/update_sight()
|
||||
/mob/living/simple_animal/update_sight(reset_sight = FALSE)
|
||||
if(!client)
|
||||
return
|
||||
if(stat == DEAD)
|
||||
grant_death_vision()
|
||||
return
|
||||
|
||||
see_invisible = initial(see_invisible)
|
||||
see_in_dark = initial(see_in_dark)
|
||||
sight = initial(sight)
|
||||
if(reset_sight)
|
||||
see_invisible = initial(see_invisible)
|
||||
see_in_dark = initial(see_in_dark)
|
||||
sight = initial(sight)
|
||||
|
||||
if(client.eye != src)
|
||||
var/atom/A = client.eye
|
||||
|
||||
Reference in New Issue
Block a user