mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-07-17 19:07:26 +01:00
Bump dreamchecker version to 1.4 (#8711)
This commit is contained in:
+1
-1
@@ -9,7 +9,7 @@ env:
|
||||
FLYWAY_BUILD="5.2.4"
|
||||
NODE_VERSION=10
|
||||
RUST_G_VERSION="0.4.1"
|
||||
SPACEMAN_DMM_VERSION="suite-1.1"
|
||||
SPACEMAN_DMM_VERSION="suite-1.4"
|
||||
matrix:
|
||||
- USE_MAP=aurora
|
||||
- USE_MAP=runtime
|
||||
|
||||
@@ -140,7 +140,6 @@ proc/RoundHealth(health)
|
||||
return "health0"
|
||||
else
|
||||
return "health-100"
|
||||
return "0"
|
||||
|
||||
/*
|
||||
Proc for attack log creation, because really why not
|
||||
@@ -211,4 +210,4 @@ Proc for attack log creation, because really why not
|
||||
|
||||
// Returns true if the mob was removed form the dead list
|
||||
/mob/proc/remove_from_dead_mob_list()
|
||||
return dead_mob_list.Remove(src)
|
||||
return dead_mob_list.Remove(src)
|
||||
|
||||
@@ -12,11 +12,9 @@
|
||||
|
||||
if (!( istext(HTMLstring) ))
|
||||
CRASH("Given non-text argument!")
|
||||
return
|
||||
else
|
||||
if (length(HTMLstring) != 7)
|
||||
CRASH("Given non-HTML argument!")
|
||||
return
|
||||
var/textr = copytext(HTMLstring, 2, 4)
|
||||
var/textg = copytext(HTMLstring, 4, 6)
|
||||
var/textb = copytext(HTMLstring, 6, 8)
|
||||
@@ -33,7 +31,6 @@
|
||||
if (length(textb) < 2)
|
||||
textr = text("0[]", textb)
|
||||
return text("#[][][]", textr, textg, textb)
|
||||
return
|
||||
|
||||
//Returns the middle-most value
|
||||
/proc/dd_range(var/low, var/high, var/num)
|
||||
@@ -859,8 +856,6 @@ proc/is_hot(obj/item/W as obj)
|
||||
else
|
||||
return 0
|
||||
|
||||
return 0
|
||||
|
||||
//Whether or not the given item counts as sharp in terms of dealing damage
|
||||
/proc/is_sharp(obj/O as obj)
|
||||
if (!O) return 0
|
||||
|
||||
@@ -243,8 +243,6 @@ var/datum/controller/subsystem/battle_monsters/SSbattlemonsters
|
||||
else
|
||||
return GetSpecies(card_defense_type," mixed with ")
|
||||
|
||||
return "unknown"
|
||||
|
||||
/datum/controller/subsystem/battle_monsters/proc/GetSpecies(card_defense_type, var/and_text = " and ")
|
||||
|
||||
//This list looks odd to prevent runtime errors related to out of bounds indexes
|
||||
@@ -520,4 +518,4 @@ var/datum/controller/subsystem/battle_monsters/SSbattlemonsters
|
||||
#undef BATTLE_MONSTERS_GEN_ROOT
|
||||
#undef BATTLE_MONSTERS_GEN_SUFFIX
|
||||
#undef BATTLE_MONSTERS_GEN_TRAP
|
||||
#undef BATTLE_MONSTERS_GEN_SPELL
|
||||
#undef BATTLE_MONSTERS_GEN_SPELL
|
||||
|
||||
@@ -138,7 +138,7 @@ var/datum/controller/subsystem/chemistry/SSchemistry
|
||||
cc.result = chemconfig[chemical]["result"]
|
||||
cc.result_amount = chemconfig[chemical]["resultamount"]
|
||||
cc.required_reagents = chemconfig[chemical]["required_reagents"]
|
||||
if(!cc.result in chemical_reagents)
|
||||
if(!(cc.result in chemical_reagents))
|
||||
log_debug("SSchemistry: Warning: Invalid result [cc.result] in [cc.name] reactions list.")
|
||||
qdel(cc)
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
var/datum/job/job = new J()
|
||||
if(!job || job.faction != faction)
|
||||
continue
|
||||
if(!job.faction in faction)
|
||||
if(!(job.faction in faction))
|
||||
continue
|
||||
occupations += job
|
||||
name_occupations[job.title] = job
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
if(href_list["download"])
|
||||
var/datum/paiCandidate/candidate = locate(href_list["candidate"])
|
||||
var/obj/item/device/paicard/card = locate(href_list["device"])
|
||||
if (!candidate in pai_candidates)
|
||||
if (!(candidate in pai_candidates))
|
||||
return
|
||||
|
||||
if(card.pai)
|
||||
@@ -105,7 +105,7 @@
|
||||
return FALSE
|
||||
candidate.ready = FALSE
|
||||
return TRUE
|
||||
|
||||
|
||||
|
||||
/datum/controller/subsystem/pai/proc/recruitWindow(mob/M as mob)
|
||||
var/datum/paiCandidate/candidate
|
||||
@@ -144,7 +144,7 @@
|
||||
nstate = interactive_state)
|
||||
ui.metadata = list("candidate" = candidate)
|
||||
ui.header = "minimal"
|
||||
|
||||
|
||||
return ui.open()
|
||||
|
||||
/datum/controller/subsystem/pai/proc/findPAI(obj/item/device/paicard/p, mob/user)
|
||||
|
||||
@@ -160,7 +160,7 @@ var/datum/controller/subsystem/timer/SStimer
|
||||
|
||||
if (timer.timeToRun < head_offset)
|
||||
bucket_resolution = null //force bucket recreation
|
||||
CRASH("[i] Invalid timer state: Timer in long run queue with a time to run less then head_offset. [get_timer_debug_string(timer)] world.time: [world.time], head_offset: [head_offset], practical_offset: [practical_offset]")
|
||||
crash_with("[i] Invalid timer state: Timer in long run queue with a time to run less then head_offset. [get_timer_debug_string(timer)] world.time: [world.time], head_offset: [head_offset], practical_offset: [practical_offset]")
|
||||
|
||||
if (timer.callBack && !timer.spent)
|
||||
timer.callBack.InvokeAsync()
|
||||
@@ -172,7 +172,7 @@ var/datum/controller/subsystem/timer/SStimer
|
||||
|
||||
if (timer.timeToRun < head_offset + TICKS2DS(practical_offset-1))
|
||||
bucket_resolution = null //force bucket recreation
|
||||
CRASH("[i] Invalid timer state: Timer in long run queue that would require a backtrack to transfer to short run queue. [get_timer_debug_string(timer)] world.time: [world.time], head_offset: [head_offset], practical_offset: [practical_offset]")
|
||||
crash_with("[i] Invalid timer state: Timer in long run queue that would require a backtrack to transfer to short run queue. [get_timer_debug_string(timer)] world.time: [world.time], head_offset: [head_offset], practical_offset: [practical_offset]")
|
||||
if (timer.callBack && !timer.spent)
|
||||
timer.callBack.InvokeAsync()
|
||||
spent += timer
|
||||
@@ -335,7 +335,7 @@ var/datum/controller/subsystem/timer/SStimer
|
||||
timeToRun = REALTIMEOFDAY + wait
|
||||
else
|
||||
timeToRun = world.time + wait
|
||||
|
||||
|
||||
if (flags & TIMER_UNIQUE)
|
||||
SStimer.hashes[hash] = src
|
||||
if (flags & TIMER_STOPPABLE)
|
||||
@@ -525,7 +525,7 @@ var/datum/controller/subsystem/timer/SStimer
|
||||
var/datum/timedevent/timer = null
|
||||
if (!istext(id) && istype(id, /datum/timedevent))
|
||||
timer = id
|
||||
else
|
||||
else
|
||||
timer = SStimer.timer_id_dict[id]
|
||||
|
||||
if(!timer)
|
||||
@@ -543,4 +543,4 @@ var/datum/controller/subsystem/timer/SStimer
|
||||
#undef BUCKET_LEN
|
||||
#undef BUCKET_POS
|
||||
#undef TIMER_ID_MAX
|
||||
#undef TIMER_MAX
|
||||
#undef TIMER_MAX
|
||||
|
||||
@@ -257,8 +257,8 @@ var/datum/controller/subsystem/vote/SSvote
|
||||
to_chat(initiator_key, "The current alert status is too high to call for a crew transfer!")
|
||||
return 0
|
||||
if(SSticker.current_state <= 2)
|
||||
return 0
|
||||
to_chat(initiator_key, "The crew transfer button has been disabled!")
|
||||
return 0
|
||||
question = "End the shift?"
|
||||
AddChoice("Initiate Crew Transfer")
|
||||
AddChoice("Continue The Round")
|
||||
|
||||
@@ -185,7 +185,6 @@ var/list/advance_cures = list(
|
||||
|
||||
if(!symptoms || !symptoms.len)
|
||||
CRASH("We did not have any symptoms before generating properties.")
|
||||
return
|
||||
|
||||
for(var/datum/symptom/S in symptoms)
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
/datum/expansion/multitool/items/cable/on_topic(href, href_list, user)
|
||||
var/obj/item/stack/cable_coil/cable_coil = holder
|
||||
if(href_list["select_color"] && href_list["select_color"] in possible_cable_coil_colours)
|
||||
if(href_list["select_color"] && (href_list["select_color"] in possible_cable_coil_colours))
|
||||
cable_coil.set_cable_color(href_list["select_color"], user)
|
||||
return MT_REFRESH
|
||||
|
||||
|
||||
@@ -32,7 +32,6 @@ var/list/wireColours = list("red", "blue", "green", "darkred", "orange", "brown"
|
||||
src.holder = holder
|
||||
if(!istype(holder, holder_type))
|
||||
CRASH("Our holder is null/the wrong type!")
|
||||
return
|
||||
|
||||
// Generate new wires
|
||||
if(random)
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
return FALSE
|
||||
if(config.protect_roles_from_antagonist && (player.assigned_role in protected_jobs))
|
||||
return FALSE
|
||||
if(player.current.client.prefs && player.current.client.prefs.species in restricted_species)
|
||||
if(player.current.client.prefs && (player.current.client.prefs.species in restricted_species))
|
||||
return FALSE
|
||||
if(player.current && (player.current.status_flags & NO_ANTAG))
|
||||
return FALSE
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
* Is the gene active in this mob's DNA?
|
||||
*/
|
||||
/datum/dna/gene/proc/is_active(var/mob/M)
|
||||
return M.active_genes && type in M.active_genes
|
||||
return M.active_genes && (type in M.active_genes)
|
||||
|
||||
// Return 1 if we can activate.
|
||||
// HANDLE MUTCHK_FORCED HERE!
|
||||
|
||||
@@ -13,5 +13,4 @@
|
||||
to_chat(user, span("warning", "The world beyond opens to your eyes."))
|
||||
user.see_invisible = SEE_INVISIBLE_CULT
|
||||
user.seer = TRUE
|
||||
return
|
||||
return fizzle(user)
|
||||
return fizzle(user)
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
if(iscarbon(L))
|
||||
var/mob/living/carbon/C = L
|
||||
flick("e_flash", C.flash)
|
||||
if(C.stuttering < 1 && !HULK in C.mutations)
|
||||
if(C.stuttering < 1 && !(HULK in C.mutations))
|
||||
C.stuttering = 1
|
||||
if(is_rune)
|
||||
C.Weaken(3)
|
||||
|
||||
@@ -351,14 +351,14 @@ var/global/list/additional_antag_types = list()
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(M.stat != DEAD)
|
||||
surviving_humans++
|
||||
if(M.loc && M.loc.loc && M.loc.loc.type in escape_locations)
|
||||
if(M.loc && M.loc.loc && (M.loc.loc.type in escape_locations))
|
||||
escaped_humans++
|
||||
if (isipc(H))
|
||||
var/datum/species/machine/machine = H.species
|
||||
machine.update_tag(H, H.client)
|
||||
if(M.stat != DEAD)
|
||||
surviving_total++
|
||||
if(M.loc && M.loc.loc && M.loc.loc.type in escape_locations)
|
||||
if(M.loc && M.loc.loc && (M.loc.loc.type in escape_locations))
|
||||
escaped_total++
|
||||
|
||||
if(M.loc && M.loc.loc && M.loc.loc.type == /area/shuttle/escape/centcom)
|
||||
|
||||
@@ -130,8 +130,8 @@
|
||||
return
|
||||
|
||||
if (reporttype == "Template")
|
||||
sanitizeSafe(alert(usr, "Would you like it to appear as if CCIAMS made the report?",,"Yes","No"))
|
||||
if ("Yes")
|
||||
var/resp = alert(usr, "Would you like it to appear as if CCIAMS made the report?",,"Yes","No")
|
||||
if (resp == "Yes")
|
||||
reportbody += "\n\n- CCIAMS, [commstation_name()]"
|
||||
else
|
||||
|
||||
|
||||
@@ -351,16 +351,12 @@
|
||||
for(var/obj/machinery/camera/C in oview(4, M))
|
||||
if(C.can_use()) // check if camera disabled
|
||||
return C
|
||||
break
|
||||
return null
|
||||
|
||||
/proc/near_range_camera(var/mob/M)
|
||||
|
||||
for(var/obj/machinery/camera/C in range(4, M))
|
||||
if(C.can_use()) // check if camera disabled
|
||||
return C
|
||||
break
|
||||
|
||||
return null
|
||||
|
||||
/obj/machinery/camera/proc/weld(var/obj/item/weldingtool/WT, var/mob/user)
|
||||
|
||||
@@ -23,7 +23,6 @@ var/syndicate_elite_shuttle_timeleft = 0
|
||||
|
||||
/proc/syndicate_elite_process()
|
||||
var/area/syndicate_mothership/control/syndicate_ship = locate()//To find announcer. This area should exist for this proc to work.
|
||||
var/area/syndicate_mothership/elite_squad/elite_squad = locate()//Where is the specops area located?
|
||||
var/mob/living/silicon/decoy/announcer = locate() in syndicate_ship//We need a fake AI to announce some stuff below. Otherwise it will be wonky.
|
||||
|
||||
var/message_tracker[] = list(0,1,2,3,5,10,30,45)//Create a a list with potential time values.
|
||||
@@ -63,86 +62,6 @@ var/syndicate_elite_shuttle_timeleft = 0
|
||||
to_chat(usr, "<span class='warning'>The Syndicate Elite shuttle is unable to leave.</span>")
|
||||
return
|
||||
|
||||
sleep(600)
|
||||
/*
|
||||
//Begin Marauder launchpad.
|
||||
spawn(0)//So it parallel processes it.
|
||||
for(var/obj/machinery/door/poddoor/M in elite_squad)
|
||||
switch(M.id)
|
||||
if("ASSAULT0")
|
||||
spawn(10)//1 second delay between each.
|
||||
M.open()
|
||||
if("ASSAULT1")
|
||||
spawn(20)
|
||||
M.open()
|
||||
if("ASSAULT2")
|
||||
spawn(30)
|
||||
M.open()
|
||||
if("ASSAULT3")
|
||||
spawn(40)
|
||||
M.open()
|
||||
|
||||
sleep(10)
|
||||
|
||||
var/spawn_marauder[] = new()
|
||||
for(var/obj/effect/landmark/L in landmarks_list)
|
||||
if(L.name == "Marauder Entry")
|
||||
spawn_marauder.Add(L)
|
||||
for(var/obj/effect/landmark/L in landmarks_list)
|
||||
if(L.name == "Marauder Exit")
|
||||
var/obj/effect/portal/P = new(L.loc)
|
||||
P.invisibility = 101//So it is not seen by anyone.
|
||||
P.failchance = 0//So it has no fail chance when teleporting.
|
||||
P.target = pick(spawn_marauder)//Where the marauder will arrive.
|
||||
spawn_marauder.Remove(P.target)
|
||||
|
||||
sleep(10)
|
||||
|
||||
for(var/obj/machinery/mass_driver/M in elite_squad)
|
||||
switch(M.id)
|
||||
if("ASSAULT0")
|
||||
spawn(10)
|
||||
M.drive()
|
||||
if("ASSAULT1")
|
||||
spawn(20)
|
||||
M.drive()
|
||||
if("ASSAULT2")
|
||||
spawn(30)
|
||||
M.drive()
|
||||
if("ASSAULT3")
|
||||
spawn(40)
|
||||
M.drive()
|
||||
|
||||
sleep(50)//Doors remain open for 5 seconds.
|
||||
|
||||
for(var/obj/machinery/door/poddoor/M in elite_squad)
|
||||
switch(M.id)//Doors close at the same time.
|
||||
if("ASSAULT0")
|
||||
spawn(0)
|
||||
M.close()
|
||||
if("ASSAULT1")
|
||||
spawn(0)
|
||||
M.close()
|
||||
if("ASSAULT2")
|
||||
spawn(0)
|
||||
M.close()
|
||||
if("ASSAULT3")
|
||||
spawn(0)
|
||||
M.close()
|
||||
*/
|
||||
elite_squad.readyreset()//Reset firealarm after the team launched.
|
||||
//End Marauder launchpad.
|
||||
/*
|
||||
var/obj/explosionmarker = locate("Syndicate Breach Area")
|
||||
if(explosionmarker)
|
||||
var/turf/simulated/T = explosionmarker.loc
|
||||
if(T)
|
||||
explosion(T,4,6,8,10,0)
|
||||
|
||||
sleep(40)
|
||||
// proc/explosion(turf/epicenter, devastation_range, heavy_impact_range, light_impact_range, flash_range, adminlog = 1)
|
||||
|
||||
*/
|
||||
var/area/start_location = locate(/area/shuttle/syndicate_elite/mothership)
|
||||
var/area/end_location = locate(/area/shuttle/syndicate_elite/station)
|
||||
|
||||
|
||||
@@ -123,7 +123,6 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
|
||||
src.isbroken=1
|
||||
src.update_icon()
|
||||
return
|
||||
return
|
||||
|
||||
/obj/machinery/newscaster/attack_ai(mob/user as mob)
|
||||
return src.attack_hand(user)
|
||||
|
||||
@@ -454,17 +454,17 @@ Buildable meters
|
||||
|
||||
else if(pipe_type in list (PIPE_SIMPLE_STRAIGHT, PIPE_SIMPLE_BENT, PIPE_SCRUBBERS_STRAIGHT, PIPE_SCRUBBERS_BENT, PIPE_SUPPLY_BENT, PIPE_SUPPLY_STRAIGHT))
|
||||
if(pipe_type in list(PIPE_SIMPLE_BENT, PIPE_SIMPLE_STRAIGHT))
|
||||
if(PIPE_SIMPLE_BENT)
|
||||
if(pipe_type == PIPE_SIMPLE_BENT)
|
||||
pipe_type = PIPE_SCRUBBERS_BENT
|
||||
else
|
||||
pipe_type =PIPE_SCRUBBERS_STRAIGHT
|
||||
else if(pipe_type in list(PIPE_SCRUBBERS_BENT, PIPE_SCRUBBERS_STRAIGHT))
|
||||
if(PIPE_SCRUBBERS_BENT)
|
||||
if(pipe_type == PIPE_SCRUBBERS_BENT)
|
||||
pipe_type = PIPE_SUPPLY_BENT
|
||||
else
|
||||
pipe_type = PIPE_SUPPLY_STRAIGHT
|
||||
else if(pipe_type in list(PIPE_SUPPLY_BENT, PIPE_SUPPLY_STRAIGHT))
|
||||
if(PIPE_SUPPLY_BENT)
|
||||
if(pipe_type == PIPE_SUPPLY_BENT)
|
||||
pipe_type = PIPE_SIMPLE_BENT
|
||||
else
|
||||
pipe_type = PIPE_SIMPLE_STRAIGHT
|
||||
|
||||
@@ -82,10 +82,12 @@
|
||||
user.visible_message(span("notice", "[user] [panel_open ? "opens" : "closes"] the hatch on the [src]."),
|
||||
span("notice", "You [panel_open ? "open" : "close"] the hatch on the [src]."))
|
||||
update_icon()
|
||||
return
|
||||
|
||||
if(!panel_open && user.machine == src)
|
||||
user << browse(null, "window=spaceheater")
|
||||
user.unset_machine()
|
||||
|
||||
return
|
||||
else
|
||||
..()
|
||||
return
|
||||
|
||||
@@ -211,7 +211,6 @@
|
||||
return "[add_zero(num2text((timeleft / 60) % 60),2)]:[add_zero(num2text(timeleft % 60), 2)]"
|
||||
else
|
||||
return "Launch"
|
||||
return ""
|
||||
|
||||
/obj/machinery/status_display/proc/remove_display()
|
||||
cut_overlays()
|
||||
|
||||
@@ -101,8 +101,6 @@
|
||||
return
|
||||
else
|
||||
return
|
||||
return
|
||||
|
||||
|
||||
/obj/machinery/suit_storage_unit/attack_hand(mob/user as mob)
|
||||
var/dat
|
||||
|
||||
@@ -56,7 +56,7 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list()
|
||||
continue
|
||||
if(amount && send_count >= amount)
|
||||
break
|
||||
if(!machine.loc.z in listening_level)
|
||||
if(!(machine.loc.z in listening_level))
|
||||
if(long_range_link == 0 && machine.long_range_link == 0)
|
||||
continue
|
||||
// If we're sending a copy, be sure to create the copy for EACH machine and paste the data
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
|
||||
for(var/mob/M in viewingcode)
|
||||
|
||||
if( (M.machine == src && M in view(1, src) ) || issilicon(M))
|
||||
if((M.machine == src && (M in view(1, src))) || issilicon(M))
|
||||
winset(M, "tcscode", "is-disabled=true")
|
||||
winset(M, "tcscode", "text=\"[showcode]\"")
|
||||
else
|
||||
|
||||
@@ -133,7 +133,7 @@
|
||||
set name = "Move To Top"
|
||||
set category = "Object"
|
||||
|
||||
if (!I in view(1, src))
|
||||
if (!(I in view(1, src)))
|
||||
return
|
||||
if(!istype(I.loc, /turf) || usr.stat || usr.restrained() )
|
||||
return
|
||||
@@ -469,7 +469,7 @@ var/list/global/slot_flags_enumeration = list(
|
||||
|
||||
if(!(usr)) //BS12 EDIT
|
||||
return
|
||||
if (!I in view(1, src))
|
||||
if (!(I in view(1, src)))
|
||||
return
|
||||
if (istype(I, /obj/item/storage/internal))
|
||||
return
|
||||
@@ -672,7 +672,7 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out.
|
||||
if(M.stat || !(ishuman(M)))
|
||||
to_chat(M, SPAN_WARNING("You are unable to focus through \the [devicename]!"))
|
||||
cannotzoom = 1
|
||||
else if(!zoom && global_hud.darkMask[1] in M.client.screen)
|
||||
else if(!zoom && (global_hud.darkMask[1] in M.client.screen))
|
||||
to_chat(M, SPAN_WARNING("Your visor gets in the way of looking through the [devicename]!"))
|
||||
cannotzoom = 1
|
||||
else if(!zoom && M.get_active_hand() != src)
|
||||
|
||||
@@ -433,7 +433,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
||||
var/auto_update = 1
|
||||
if(mode in no_auto_update)
|
||||
auto_update = 0
|
||||
if(old_ui && (mode == lastmode && ui_tick % 5 && mode in update_every_five))
|
||||
if(old_ui && (mode == lastmode && ui_tick % 5 && (mode in update_every_five)))
|
||||
return
|
||||
|
||||
lastmode = mode
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
set src in usr
|
||||
|
||||
var/num = input(usr, "Please enter the low-bound for the detector") as num|null
|
||||
if (null)
|
||||
if (num == null)
|
||||
return
|
||||
|
||||
low = num
|
||||
@@ -49,7 +49,7 @@
|
||||
set src in usr
|
||||
|
||||
var/num = input(usr, "Please enter the high-bound for the detector") as num|null
|
||||
if (null)
|
||||
if (num == null)
|
||||
return
|
||||
|
||||
high = num
|
||||
|
||||
@@ -425,7 +425,7 @@ var/global/list/default_medbay_channels = list(
|
||||
R.receive_signal(signal)
|
||||
|
||||
// Receiving code can be located in Telecommunications.dm
|
||||
return signal.data["done"] && position.z in signal.data["level"]
|
||||
return signal.data["done"] && (position.z in signal.data["level"])
|
||||
|
||||
|
||||
/* ###### Intercoms and station-bounced radios ###### */
|
||||
@@ -476,7 +476,7 @@ var/global/list/default_medbay_channels = list(
|
||||
|
||||
sleep(rand(10,25)) // wait a little...
|
||||
|
||||
if(signal.data["done"] && position.z in signal.data["level"])
|
||||
if(signal.data["done"] && (position.z in signal.data["level"]))
|
||||
// we're done here.
|
||||
return 1
|
||||
|
||||
|
||||
@@ -220,7 +220,6 @@
|
||||
if(!S.use_charge(charge_costs[i] * used)) // Doesn't need to be deleted
|
||||
return 0
|
||||
return 1
|
||||
return 0
|
||||
|
||||
/obj/item/stack/proc/add(var/extra)
|
||||
if(!uses_charge)
|
||||
|
||||
@@ -44,17 +44,7 @@
|
||||
var/datum/autopsy_data/W = O.autopsy_data[V]
|
||||
|
||||
if(!W.pretend_weapon)
|
||||
/*
|
||||
// the more hits, the more likely it is that we get the right weapon type
|
||||
if(prob(50 + W.hits * 10 + W.damage))
|
||||
*/
|
||||
|
||||
// Buffing this stuff up for now!
|
||||
if(1)
|
||||
W.pretend_weapon = W.weapon
|
||||
else
|
||||
W.pretend_weapon = pick("mechanical toolbox", "wirecutters", "revolver", "crowbar", "fire extinguisher", "tomato soup", "oxygen tank", "emergency oxygen tank", "laser", "bullet")
|
||||
|
||||
W.pretend_weapon = W.weapon
|
||||
|
||||
var/datum/autopsy_data_scanner/D = wdata[V]
|
||||
if(!D)
|
||||
|
||||
@@ -64,7 +64,7 @@
|
||||
overlays.Cut()
|
||||
if(front_id)
|
||||
var/tiny_state = "id-generic"
|
||||
if("id-"+front_id.icon_state in icon_states(icon))
|
||||
if(("id-" + front_id.icon_state) in icon_states(icon))
|
||||
tiny_state = "id-"+front_id.icon_state
|
||||
var/image/tiny_image = new/image(icon, icon_state = tiny_state)
|
||||
tiny_image.appearance_flags = RESET_COLOR
|
||||
@@ -201,4 +201,4 @@
|
||||
var/image/film_image = new/image(icon, icon_state = "lanyard_film")
|
||||
film_image.appearance_flags = RESET_COLOR
|
||||
overlays += film_image
|
||||
mob_icon_update()
|
||||
mob_icon_update()
|
||||
|
||||
@@ -125,7 +125,7 @@
|
||||
else if(src in location) // or if tank is in the mobs possession
|
||||
if(!location.internal) // and they do not have any active internals
|
||||
mask_check = 1
|
||||
else if(istype(src.loc, /obj/item/rig) && src.loc in location) // or the rig is in the mobs possession
|
||||
else if(istype(src.loc, /obj/item/rig) && (src.loc in location)) // or the rig is in the mobs possession
|
||||
if(!location.internal) // and they do not have any active internals
|
||||
mask_check = 1
|
||||
|
||||
|
||||
@@ -119,7 +119,7 @@ obj/structure/ex_act(severity)
|
||||
if(pod.contents.len)
|
||||
to_chat(AM, "<span class='notice'>The pod is already occupied.</span>")
|
||||
return
|
||||
else if(!pod.moving && pod.dir in directions())
|
||||
else if(!pod.moving && (pod.dir in directions()))
|
||||
AM.forceMove(pod)
|
||||
return
|
||||
|
||||
@@ -127,7 +127,7 @@ obj/structure/ex_act(severity)
|
||||
/obj/structure/transit_tube/station/attack_hand(mob/user as mob)
|
||||
if(!pod_moving)
|
||||
for(var/obj/structure/transit_tube_pod/pod in loc)
|
||||
if(!pod.moving && pod.dir in directions())
|
||||
if(!pod.moving && (pod.dir in directions()))
|
||||
if(icon_state == "closed")
|
||||
open_animation()
|
||||
|
||||
@@ -156,7 +156,7 @@ obj/structure/ex_act(severity)
|
||||
|
||||
/obj/structure/transit_tube/station/proc/launch_pod()
|
||||
for(var/obj/structure/transit_tube_pod/pod in loc)
|
||||
if(!pod.moving && pod.dir in directions())
|
||||
if(!pod.moving && (pod.dir in directions()))
|
||||
spawn(5)
|
||||
pod_moving = 1
|
||||
close_animation()
|
||||
|
||||
@@ -95,7 +95,7 @@ var/intercom_range_display_status = 0
|
||||
if(!(locate(/obj/structure/grille,T)))
|
||||
var/window_check = 0
|
||||
for(var/obj/structure/window/W in T)
|
||||
if (W.dir == turn(C1.dir,180) || W.dir in list(5,6,9,10) )
|
||||
if (W.dir == turn(C1.dir,180) || (W.dir in list(5,6,9,10)))
|
||||
window_check = 1
|
||||
break
|
||||
if(!window_check)
|
||||
|
||||
@@ -421,7 +421,7 @@ var/list/VVdynamic_lock = list(
|
||||
var/var_value
|
||||
|
||||
if(param_var_name)
|
||||
if(!param_var_name in O.vars)
|
||||
if(!(param_var_name in O.vars))
|
||||
to_chat(src, "A variable with this name ([param_var_name]) doesn't exist in this atom ([O])")
|
||||
return
|
||||
|
||||
|
||||
@@ -77,6 +77,6 @@
|
||||
if(!..())
|
||||
return FALSE
|
||||
var/datum/bounty/item/other_item_bounty = other_bounty
|
||||
if(other_bounty && /obj/item/robot_parts/robot_suit in other_item_bounty.wanted_types)
|
||||
if(other_bounty && (/obj/item/robot_parts/robot_suit in other_item_bounty.wanted_types))
|
||||
return FALSE
|
||||
return TRUE
|
||||
return TRUE
|
||||
|
||||
@@ -117,7 +117,7 @@
|
||||
|
||||
if(href_list["category"])
|
||||
var/category = locate(href_list["category"])
|
||||
if(category && category in categories)
|
||||
if(category && (category in categories))
|
||||
selected_category = category
|
||||
. = 1
|
||||
|
||||
|
||||
@@ -220,7 +220,7 @@
|
||||
var/obj/item/I = usr.get_active_hand()
|
||||
if (istype(I, /obj/item/card))
|
||||
var/obj/item/card/id/C = I
|
||||
if(access_cent_captain in C.access || access_hop in C.access || access_captain in C.access)
|
||||
if((access_cent_captain in C.access) || (access_hop in C.access) || (access_captain in C.access))
|
||||
access_code = 0
|
||||
to_chat(usr, "\icon[src]<span class='info'>Access code reset to 0.</span>")
|
||||
else if (istype(I, /obj/item/card/emag))
|
||||
|
||||
@@ -116,7 +116,7 @@
|
||||
else
|
||||
bar.color = "#ff0000"
|
||||
hardpoint_bar_cache += bar
|
||||
for(var/i=i;i<=value;i++)
|
||||
for(var/i = 1; i <= value; i++)
|
||||
new_overlays += hardpoint_bar_cache[i]
|
||||
overlays = new_overlays
|
||||
|
||||
|
||||
@@ -153,8 +153,8 @@
|
||||
to_chat(user, "<span class='notice'>You vastly increase projector power and override the safety and security protocols.</span>")
|
||||
to_chat(user, "Warning. Automatic shutoff and derezing protocols have been corrupted. Please call [current_map.company_name] maintenance and do not use the simulator.")
|
||||
log_game("[key_name(usr)] emagged the Holodeck Control Computer",ckey=key_name(usr))
|
||||
return 1
|
||||
src.updateUsrDialog()
|
||||
return 1
|
||||
else
|
||||
..()
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
write_data_to_pin(new_data)
|
||||
|
||||
/datum/integrated_io/dir/write_data_to_pin(var/new_data)
|
||||
if(isnull(new_data) || new_data in alldirs + list(UP, DOWN))
|
||||
if(isnull(new_data) || (new_data in (alldirs + list(UP, DOWN))))
|
||||
data = new_data
|
||||
holder.on_data_written()
|
||||
|
||||
|
||||
@@ -18,8 +18,8 @@
|
||||
var/datum/integrated_io/I = inputs[1]
|
||||
set_pin_data(IC_OUTPUT, 1, null)
|
||||
if(!isweakref(I.data))
|
||||
return
|
||||
activate_pin(3)
|
||||
return
|
||||
var/atom/A = I.data.resolve()
|
||||
if(!A)
|
||||
activate_pin(3)
|
||||
@@ -70,4 +70,4 @@
|
||||
set_pin_data(IC_OUTPUT, 1, get_dir(get_turf(src), get_step_towards2(get_turf(src),A)))
|
||||
set_pin_data(IC_OUTPUT, 2, sqrt((A.x-T.x)*(A.x-T.x)+ (A.y-T.y)*(A.y-T.y)))
|
||||
push_data()
|
||||
activate_pin(2)
|
||||
activate_pin(2)
|
||||
|
||||
@@ -185,7 +185,7 @@
|
||||
if(islist(composite_material))
|
||||
for(var/material_string in composite_material)
|
||||
temp_matter[material_string] = composite_material[material_string]
|
||||
else if(SHEET_MATERIAL_AMOUNT)
|
||||
else
|
||||
temp_matter[name] = SHEET_MATERIAL_AMOUNT
|
||||
return temp_matter
|
||||
|
||||
@@ -995,4 +995,4 @@
|
||||
name = MATERIAL_SHUTTLE_SKRELL
|
||||
display_name = "superadvanced alloy"
|
||||
icon_colour = null
|
||||
icon_base = "skrell"
|
||||
icon_base = "skrell"
|
||||
|
||||
@@ -253,7 +253,7 @@
|
||||
P.stamped += /obj/item/stamp
|
||||
P.add_overlay(stampoverlay)
|
||||
P.stamps += "<HR><i>This paper has been stamped by the NT Ore Processing System.</i>"
|
||||
|
||||
|
||||
user.visible_message("\The [src] rattles and prints out a sheet of paper.")
|
||||
playsound(get_turf(src), "sound/bureaucracy/print_short.ogg", 50, 1)
|
||||
|
||||
@@ -335,7 +335,7 @@
|
||||
if(!O)
|
||||
break
|
||||
if(!isnull(ores_stored[O.material]))
|
||||
ores_stored[O.material]++
|
||||
ores_stored[O.material] = ores_stored[O.material] + 1
|
||||
|
||||
qdel(O)
|
||||
|
||||
@@ -388,7 +388,7 @@
|
||||
sheets += total - 1
|
||||
|
||||
for(var/i = 0, i < total, i++)
|
||||
console.alloy_mats[A]++
|
||||
console.alloy_mats[A] = console.alloy_mats[A] + 1
|
||||
new A.product(get_turf(output))
|
||||
|
||||
else if(ores_processing[metal] == 2 && O.compresses_to) //Compressing.
|
||||
@@ -407,7 +407,7 @@
|
||||
use_power(100)
|
||||
ores_stored[metal] -= 2
|
||||
sheets += 2
|
||||
console.output_mats[M]++
|
||||
console.output_mats[M] += 1
|
||||
new M.stack_type(get_turf(output))
|
||||
|
||||
else if(ores_processing[metal] == 1 && O.smelts_to) //Smelting.
|
||||
@@ -421,17 +421,17 @@
|
||||
if(console)
|
||||
console.points += O.worth
|
||||
use_power(100)
|
||||
ores_stored[metal]--
|
||||
ores_stored[metal] -= 1
|
||||
sheets++
|
||||
console.output_mats[M]++
|
||||
console.output_mats[M] += 1
|
||||
new M.stack_type(get_turf(output))
|
||||
else
|
||||
if(console)
|
||||
console.points -= O.worth * 3 //reee wasting our materials!
|
||||
use_power(500)
|
||||
ores_stored[metal]--
|
||||
ores_stored[metal] -= 1
|
||||
sheets++
|
||||
console.input_mats[O]++
|
||||
console.input_mats[O] += 1
|
||||
console.waste++
|
||||
new /obj/item/ore/slag(get_turf(output))
|
||||
else
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
if(!istype(src, /mob/living/test) && !client)
|
||||
return
|
||||
|
||||
if(speaker && !istype(speaker, /mob/living/test) && (!speaker.client && istype(src,/mob/abstract/observer) && client.prefs.toggles & CHAT_GHOSTEARS && !speaker in view(src)))
|
||||
if(speaker && !istype(speaker, /mob/living/test) && (!speaker.client && istype(src,/mob/abstract/observer) && client.prefs.toggles & CHAT_GHOSTEARS && !(speaker in view(src))))
|
||||
//Does the speaker have a client? It's either random stuff that observers won't care about (Experiment 97B says, 'EHEHEHEHEHEHEHE')
|
||||
//Or someone snoring. So we make it where they won't hear it.
|
||||
return
|
||||
@@ -56,7 +56,7 @@
|
||||
if(speaker_name != speaker.real_name && speaker.real_name)
|
||||
speaker_name = "[speaker.real_name] ([speaker_name])"
|
||||
track = "[ghost_follow_link(speaker, src)] "
|
||||
if(client.prefs.toggles & CHAT_GHOSTEARS && speaker in view(src))
|
||||
if((client.prefs.toggles & CHAT_GHOSTEARS) && (speaker in view(src)))
|
||||
message = "<b>[message]</b>"
|
||||
|
||||
var/hearing_aid = FALSE
|
||||
|
||||
@@ -302,12 +302,12 @@ var/list/slot_equipment_priority = list( \
|
||||
//Outdated but still in use apparently. This should at least be a human proc.
|
||||
/mob/proc/get_equipped_items(var/include_carried = 0)
|
||||
. = list()
|
||||
if(slot_back) . += back
|
||||
if(slot_wear_mask) . += wear_mask
|
||||
if(back) . += back
|
||||
if(wear_mask) . += wear_mask
|
||||
|
||||
if(include_carried)
|
||||
if(slot_l_hand) . += l_hand
|
||||
if(slot_r_hand) . += r_hand
|
||||
if(l_hand) . += l_hand
|
||||
if(r_hand) . += r_hand
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -183,7 +183,7 @@
|
||||
|
||||
// Can we speak this language, as opposed to just understanding it?
|
||||
/mob/proc/can_speak(datum/language/speaking)
|
||||
return (universal_speak || (speaking && speaking.flags & INNATE) || speaking in src.languages)
|
||||
return (universal_speak || (speaking && speaking.flags & INNATE) || (speaking in src.languages))
|
||||
|
||||
/mob/proc/get_language_prefix()
|
||||
if(client && client.prefs.language_prefixes && client.prefs.language_prefixes.len)
|
||||
|
||||
@@ -230,31 +230,10 @@
|
||||
|
||||
if (stat != 2)
|
||||
if (machine)
|
||||
if (!( machine.check_eye(src) ))
|
||||
if (machine.check_eye(src) < 1)
|
||||
reset_view(null)
|
||||
else
|
||||
if(client && !client.adminobs)
|
||||
if(!client?.adminobs)
|
||||
reset_view(null)
|
||||
|
||||
return 1
|
||||
|
||||
if (stat != 2)
|
||||
if (machine)
|
||||
if (machine.check_eye(src) < 0)
|
||||
reset_view(null)
|
||||
else
|
||||
if(client && !client.adminobs)
|
||||
reset_view(null)
|
||||
|
||||
/*/mob/living/carbon/brain/emp_act(severity)
|
||||
if(!(container && istype(container, /obj/item/device/mmi)))
|
||||
return
|
||||
else
|
||||
switch(severity)
|
||||
if(1)
|
||||
emp_damage += rand(20,30)
|
||||
if(2)
|
||||
emp_damage += rand(10,20)
|
||||
if(3)
|
||||
emp_damage += rand(0,10)
|
||||
..()*/
|
||||
|
||||
@@ -151,7 +151,7 @@
|
||||
var/emote_scream = pick("screams in pain and ", "lets out a sharp cry and ", "cries out and ")
|
||||
emote("me", 1, "[(species.flags & NO_PAIN) ? "" : emote_scream ]drops what they were holding in their [E.name]!")
|
||||
|
||||
else if(!(E.status & ORGAN_ROBOT) && CE_DROPITEM in chem_effects && prob(chem_effects[CE_DROPITEM]))
|
||||
else if(!(E.status & ORGAN_ROBOT) && (CE_DROPITEM in chem_effects) && prob(chem_effects[CE_DROPITEM]))
|
||||
to_chat(src, span("warning", "Your [E.name] goes limp and unresponsive for a moment, dropping what it was holding!"))
|
||||
emote("me", 1, "drops what they were holding in their [E.name]!")
|
||||
switch(E.body_part)
|
||||
|
||||
@@ -382,13 +382,13 @@ This saves us from having to call add_fingerprint() any time something is put in
|
||||
if(w_uniform) items += w_uniform
|
||||
|
||||
if(include_carried)
|
||||
if(slot_l_hand) items += l_hand
|
||||
if(slot_r_hand) items += r_hand
|
||||
if(slot_l_store) items += l_store
|
||||
if(slot_r_store) items += r_store
|
||||
if(slot_legcuffed) items += legcuffed
|
||||
if(slot_handcuffed) items += handcuffed
|
||||
if(slot_s_store) items += s_store
|
||||
if(l_hand) items += l_hand
|
||||
if(r_hand) items += r_hand
|
||||
if(l_store) items += l_store
|
||||
if(r_store) items += r_store
|
||||
if(legcuffed) items += legcuffed
|
||||
if(handcuffed) items += handcuffed
|
||||
if(s_store) items += s_store
|
||||
|
||||
return items
|
||||
|
||||
|
||||
@@ -282,7 +282,7 @@
|
||||
var/cword = pick(words)
|
||||
words.Remove(cword)
|
||||
var/suffix = copytext(cword,length(cword)-1,length(cword))
|
||||
while(length(cword)>0 && suffix in list(".",",",";","!",":","?"))
|
||||
while(length(cword)>0 && (suffix in list(".",",",";","!",":","?")))
|
||||
cword = copytext(cword,1 ,length(cword)-1)
|
||||
suffix = copytext(cword,length(cword)-1,length(cword) )
|
||||
if(length(cword))
|
||||
@@ -308,4 +308,4 @@
|
||||
|
||||
|
||||
message = "[prefix][jointext(words," ")]"
|
||||
return message
|
||||
return message
|
||||
|
||||
@@ -90,6 +90,8 @@
|
||||
updateicon()
|
||||
|
||||
/mob/living/silicon/robot/proc/activated(obj/item/O)
|
||||
updateicon()
|
||||
|
||||
if(module_state_1 == O)
|
||||
return 1
|
||||
else if(module_state_2 == O)
|
||||
@@ -98,7 +100,6 @@
|
||||
return 1
|
||||
else
|
||||
return 0
|
||||
updateicon()
|
||||
|
||||
//Helper procs for cyborg modules on the UI.
|
||||
//These are hackish but they help clean up code elsewhere.
|
||||
@@ -315,4 +316,4 @@
|
||||
var/selected = get_selected_module()
|
||||
if (selected)
|
||||
result += "\nThe activity light on hardpoint [selected] is on.\n"
|
||||
return result
|
||||
return result
|
||||
|
||||
@@ -120,7 +120,7 @@
|
||||
if(M.stat == DEAD && M.client?.prefs.toggles & CHAT_GHOSTEARS)
|
||||
M.hear_say(message, verb, speaking, null, null, src)
|
||||
continue
|
||||
if(M.loc && M.locs[1] in hearturfs)
|
||||
if(M.loc && (M.locs[1] in hearturfs))
|
||||
M.hear_say(message, verb, speaking, null, null, src)
|
||||
else
|
||||
to_chat(src, SPAN_WARNING("No holopad connected."))
|
||||
@@ -155,4 +155,4 @@
|
||||
|
||||
#undef IS_AI
|
||||
#undef IS_ROBOT
|
||||
#undef IS_PAI
|
||||
#undef IS_PAI
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
var/mob/living/carbon/human/M = target_mob
|
||||
var/sting_prob = 40 // Bees will always try to sting.
|
||||
var/prob_mult = 1
|
||||
if(M && M in view(src,1)) // Can I see my target?
|
||||
if(M && (M in view(src,1))) // Can I see my target?
|
||||
var/obj/item/clothing/worn_suit = M.wear_suit
|
||||
var/obj/item/clothing/worn_helmet = M.head
|
||||
if(worn_suit) // Are you wearing clothes?
|
||||
|
||||
@@ -76,7 +76,7 @@
|
||||
var/current_dist = get_dist(src, friend)
|
||||
|
||||
if(movement_target != friend)
|
||||
if(current_dist > follow_dist && friend in oview(src))
|
||||
if(current_dist > follow_dist && (friend in oview(src)))
|
||||
//stop existing movement
|
||||
walk_to(src,0)
|
||||
turns_since_scan = 0
|
||||
@@ -153,4 +153,4 @@
|
||||
|
||||
/mob/living/simple_animal/carp/baby/death()
|
||||
.=..()
|
||||
desc = "A dead baby space carp, what a tragedy!"
|
||||
desc = "A dead baby space carp, what a tragedy!"
|
||||
|
||||
@@ -241,8 +241,6 @@
|
||||
held_item = null
|
||||
return 1
|
||||
|
||||
return
|
||||
|
||||
/mob/living/simple_animal/spiderbot/verb/get_item()
|
||||
set name = "Pick up item"
|
||||
set category = "Spiderbot"
|
||||
@@ -303,4 +301,4 @@
|
||||
layer = initial(layer)
|
||||
|
||||
/mob/living/simple_animal/spiderbot/get_bullet_impact_effect_type(var/def_zone)
|
||||
return BULLET_IMPACT_METAL
|
||||
return BULLET_IMPACT_METAL
|
||||
|
||||
@@ -112,7 +112,7 @@
|
||||
stop_automated_movement = 1
|
||||
stance_step++
|
||||
if(stance_step >= 15) //rests for 10 ticks
|
||||
if(target_mob && target_mob in ListTargets(10))
|
||||
if(target_mob && (target_mob in ListTargets(10)))
|
||||
set_stance(HOSTILE_STANCE_ATTACK) //If the mob he was chasing is still nearby, resume the attack, otherwise go idle.
|
||||
else
|
||||
set_stance(HOSTILE_STANCE_IDLE)
|
||||
|
||||
@@ -309,7 +309,6 @@ mob/living/simple_animal/hostile/hitby(atom/movable/AM as mob|obj,var/speed = TH
|
||||
|
||||
|
||||
/mob/living/simple_animal/hostile/proc/check_horde()
|
||||
return 0
|
||||
if(emergency_shuttle.shuttle.location)
|
||||
if(!enroute && !target_mob) //The shuttle docked, all monsters rush for the escape hallway
|
||||
if(!shuttletarget && escape_list.len) //Make sure we didn't already assign it a target, and that there are targets to pick
|
||||
@@ -387,4 +386,4 @@ mob/living/simple_animal/hostile/hitby(atom/movable/AM as mob|obj,var/speed = TH
|
||||
if(get_dist(src, E) < get_dist(src, current))
|
||||
return TRUE
|
||||
else
|
||||
return FALSE
|
||||
return FALSE
|
||||
|
||||
@@ -133,7 +133,7 @@
|
||||
/mob/living/simple_animal/hostile/retaliate/minedrone/proc/FindOre()
|
||||
if(!enemies.len)
|
||||
setClickCooldown(attack_delay)
|
||||
if(!target_ore in ListTargets(10))
|
||||
if(!(target_ore in ListTargets(10)))
|
||||
target_ore = null
|
||||
for(var/obj/item/ore/O in oview(1,src))
|
||||
O.forceMove(src)
|
||||
|
||||
@@ -377,11 +377,11 @@
|
||||
return
|
||||
return
|
||||
|
||||
if(parrot_interest && parrot_interest in view(src))
|
||||
if(parrot_interest && (parrot_interest in view(src)))
|
||||
parrot_state = PARROT_SWOOP | PARROT_STEAL
|
||||
return
|
||||
|
||||
if(parrot_perch && parrot_perch in view(src))
|
||||
if(parrot_perch && (parrot_perch in view(src)))
|
||||
parrot_state = PARROT_SWOOP | PARROT_RETURN
|
||||
return
|
||||
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
return (!mover.density || !density || lying)
|
||||
else
|
||||
return (!mover.density || !density || lying)
|
||||
return
|
||||
|
||||
/mob/proc/setMoveCooldown(var/timeout)
|
||||
if(client)
|
||||
|
||||
@@ -115,7 +115,7 @@
|
||||
to_chat(user, SPAN_WARNING("\The [computer] flashes, \"Access Denied.\"."))
|
||||
else if(check_type == PROGRAM_ACCESS_LIST_ALL)
|
||||
for(var/check in access_to_check) //Loop through all the accesse's to check
|
||||
if(!check in I.access) //Fail on first miss
|
||||
if(!(check in I.access)) //Fail on first miss
|
||||
if(loud)
|
||||
to_chat(user, SPAN_WARNING("\The [computer] flashes, \"Access Denied.\"."))
|
||||
return FALSE
|
||||
@@ -163,7 +163,7 @@
|
||||
return FALSE
|
||||
else if(check_type == PROGRAM_ACCESS_LIST_ALL)
|
||||
for(var/check in access_to_check) //Loop through all the accesse's to check
|
||||
if(!check in I.access) //Fail on first miss
|
||||
if(!(check in I.access)) //Fail on first miss
|
||||
if(loud)
|
||||
to_chat(user, SPAN_WARNING("\The [computer] flashes, \"Access Denied.\"."))
|
||||
return FALSE
|
||||
@@ -227,4 +227,4 @@
|
||||
if(NM)
|
||||
return NM.check_eye(user)
|
||||
else
|
||||
return -1
|
||||
return -1
|
||||
|
||||
@@ -121,7 +121,7 @@
|
||||
if(!computer || !computer.hard_drive || !computer.hard_drive.store_file(logfile))
|
||||
if(!computer)
|
||||
// This program shouldn't even be runnable without computer.
|
||||
CRASH("Var computer is null!")
|
||||
crash_with("Var computer is null!")
|
||||
return TRUE
|
||||
if(!computer.hard_drive)
|
||||
computer.visible_message("\The [computer] shows an \"I/O Error - Hard drive connection error\" warning.")
|
||||
@@ -230,4 +230,4 @@
|
||||
ui.auto_update_layout = 1
|
||||
ui.set_initial_data(data)
|
||||
ui.open()
|
||||
ui.set_auto_update(TRUE)
|
||||
ui.set_auto_update(TRUE)
|
||||
|
||||
@@ -80,7 +80,7 @@
|
||||
if(. != STATUS_CLOSE)
|
||||
if(loc)
|
||||
. = min(., loc.contents_nano_distance(src_object, src))
|
||||
if(STATUS_INTERACTIVE)
|
||||
if(. == STATUS_INTERACTIVE)
|
||||
return STATUS_UPDATE
|
||||
|
||||
/mob/living/carbon/human/default_can_use_topic(var/src_object)
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
|
||||
if(monitored_alarm_ids)
|
||||
for(var/obj/machinery/alarm/alarm in SSmachinery.processing_machines)
|
||||
if(alarm.alarm_id && alarm.alarm_id in monitored_alarm_ids)
|
||||
if(alarm.alarm_id && (alarm.alarm_id in monitored_alarm_ids))
|
||||
monitored_alarms += alarm
|
||||
// machines may not yet be ordered at this point
|
||||
sortTim(monitored_alarms, /proc/cmp_alarm, FALSE)
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
if(istype(running_code))
|
||||
running_code.cycle(100000)
|
||||
var/list/dat = json_decode(ntsl2.send(list(action="get_signals",id=running_code.id)))
|
||||
if(istype(dat) && "content" in dat)
|
||||
if(istype(dat) && ("content" in dat))
|
||||
var/datum/signal/sig = null
|
||||
if(dat["reference"])
|
||||
sig = locate(dat["reference"])
|
||||
@@ -44,4 +44,4 @@
|
||||
else
|
||||
sig = new()
|
||||
sig.data["server"] = running_code.S
|
||||
sig.tcombroadcast(html_encode(dat["content"]), dat["freq"], html_encode(dat["source"]), html_encode(dat["job"]), html_encode(dat["verb"]), dat["language"])
|
||||
sig.tcombroadcast(html_encode(dat["content"]), dat["freq"], html_encode(dat["source"]), html_encode(dat["job"]), html_encode(dat["verb"]), dat["language"])
|
||||
|
||||
@@ -925,12 +925,12 @@ Note that amputating the affected organ does in fact remove the infection from t
|
||||
holder = owner
|
||||
if(!holder)
|
||||
return
|
||||
if (holder.handcuffed && body_part in list(ARM_LEFT, ARM_RIGHT, HAND_LEFT, HAND_RIGHT))
|
||||
if (holder.handcuffed && (body_part in list(ARM_LEFT, ARM_RIGHT, HAND_LEFT, HAND_RIGHT)))
|
||||
holder.visible_message(\
|
||||
"\The [holder.handcuffed.name] falls off of [holder.name].",\
|
||||
"\The [holder.handcuffed.name] falls off you.")
|
||||
holder.drop_from_inventory(holder.handcuffed)
|
||||
if (holder.legcuffed && body_part in list(FOOT_LEFT, FOOT_RIGHT, LEG_LEFT, LEG_RIGHT))
|
||||
if (holder.legcuffed && (body_part in list(FOOT_LEFT, FOOT_RIGHT, LEG_LEFT, LEG_RIGHT)))
|
||||
holder.visible_message(\
|
||||
"\The [holder.legcuffed.name] falls off of [holder.name].",\
|
||||
"\The [holder.legcuffed.name] falls off you.")
|
||||
|
||||
@@ -210,7 +210,7 @@ obj/item/organ/vaurca/neuralsocket/process()
|
||||
else if(src in location) // or if tank is in the mobs possession
|
||||
if(!location.internal) // and they do not have any active internals
|
||||
mask_check = 1
|
||||
else if(istype(src.loc, /obj/item/rig) && src.loc in location) // or the rig is in the mobs possession
|
||||
else if(istype(src.loc, /obj/item/rig) && (src.loc in location)) // or the rig is in the mobs possession
|
||||
if(!location.internal) // and they do not have any active internals
|
||||
mask_check = 1
|
||||
|
||||
|
||||
@@ -66,8 +66,7 @@
|
||||
|
||||
var/input_stamp = input(user, "Choose a stamp to disguise as.", "Choose a stamp.") in show_stamps
|
||||
|
||||
if(user && src in user.contents)
|
||||
|
||||
if(user && (src in user.contents))
|
||||
var/obj/item/stamp/chosen_stamp = stamps[capitalize(input_stamp)]
|
||||
|
||||
if(chosen_stamp)
|
||||
|
||||
@@ -218,8 +218,6 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin
|
||||
update_state()
|
||||
update_icon()
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
|
||||
/obj/machinery/particle_accelerator
|
||||
name = "Particle Accelerator"
|
||||
@@ -335,4 +333,3 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin
|
||||
use_power = 1
|
||||
update_icon()
|
||||
return TRUE
|
||||
return FALSE
|
||||
@@ -182,8 +182,6 @@
|
||||
else
|
||||
return TRUE
|
||||
|
||||
return TRUE
|
||||
|
||||
/obj/item/gun/verb/wield_gun()
|
||||
set name = "Wield Firearm"
|
||||
set category = "Object"
|
||||
@@ -819,4 +817,4 @@
|
||||
"You hear a metallic crack.")
|
||||
qdel(pin)
|
||||
pin = null
|
||||
return ..()
|
||||
return ..()
|
||||
|
||||
@@ -299,4 +299,5 @@
|
||||
if(isprox(D))
|
||||
to_chat(user, "This wooden bucket doesn't play well with electronics.")
|
||||
return
|
||||
..()
|
||||
|
||||
..()
|
||||
|
||||
@@ -263,7 +263,7 @@
|
||||
|
||||
/obj/item/device/destTagger/Topic(href, href_list)
|
||||
src.add_fingerprint(usr)
|
||||
if(href_list["nextTag"] && href_list["nextTag"] in SSdisposals.tagger_locations)
|
||||
if(href_list["nextTag"] && (href_list["nextTag"] in SSdisposals.tagger_locations))
|
||||
src.currTag = href_list["nextTag"]
|
||||
if(href_list["nextTag"] == "CUSTOM")
|
||||
var/dest = input("Please enter custom location.", "Location", src.currTag ? src.currTag : "None")
|
||||
|
||||
@@ -134,7 +134,7 @@
|
||||
|
||||
/obj/item/vampiric/hear_talk(mob/M as mob, text)
|
||||
..()
|
||||
if(world.time - last_bloodcall >= bloodcall_interval && M in view(7, src))
|
||||
if(world.time - last_bloodcall >= bloodcall_interval && (M in view(7, src)))
|
||||
bloodcall(M)
|
||||
|
||||
/obj/item/vampiric/proc/bloodcall(var/mob/living/carbon/human/M)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
client/verb/tcssave()
|
||||
set hidden = 1
|
||||
if(mob.machine || issilicon(mob))
|
||||
if((istype(mob.machine, /obj/machinery/computer/telecomms/traffic) && mob.machine in view(1, mob)) || issilicon(mob))
|
||||
if((istype(mob.machine, /obj/machinery/computer/telecomms/traffic) && (mob.machine in view(1, mob))) || issilicon(mob))
|
||||
var/obj/machinery/computer/telecomms/traffic/Machine = mob.machine
|
||||
if(Machine.editingcode != mob)
|
||||
return
|
||||
@@ -28,7 +28,7 @@ client/verb/tcssave()
|
||||
client/verb/tcscompile()
|
||||
set hidden = 1
|
||||
if(mob.machine || issilicon(mob))
|
||||
if((istype(mob.machine, /obj/machinery/computer/telecomms/traffic) && mob.machine in view(1, mob)) || (issilicon(mob) && istype(mob.machine, /obj/machinery/computer/telecomms/traffic) ))
|
||||
if((istype(mob.machine, /obj/machinery/computer/telecomms/traffic) && (mob.machine in view(1, mob))) || (issilicon(mob) && istype(mob.machine, /obj/machinery/computer/telecomms/traffic) ))
|
||||
var/obj/machinery/computer/telecomms/traffic/Machine = mob.machine
|
||||
if(Machine.editingcode != mob)
|
||||
return
|
||||
@@ -79,7 +79,7 @@ client/verb/tcscompile()
|
||||
client/verb/tcsrun()
|
||||
set hidden = 1
|
||||
if(mob.machine || issilicon(mob))
|
||||
if((istype(mob.machine, /obj/machinery/computer/telecomms/traffic) && mob.machine in view(1, mob)) || (issilicon(mob) && istype(mob.machine, /obj/machinery/computer/telecomms/traffic) ))
|
||||
if((istype(mob.machine, /obj/machinery/computer/telecomms/traffic) && (mob.machine in view(1, mob))) || (issilicon(mob) && istype(mob.machine, /obj/machinery/computer/telecomms/traffic) ))
|
||||
var/obj/machinery/computer/telecomms/traffic/Machine = mob.machine
|
||||
if(Machine.editingcode != mob)
|
||||
return
|
||||
@@ -145,7 +145,7 @@ client/verb/tcsrun()
|
||||
client/verb/exittcs()
|
||||
set hidden = 1
|
||||
if(mob.machine || issilicon(mob))
|
||||
if((istype(mob.machine, /obj/machinery/computer/telecomms/traffic) && mob.machine in view(1, mob)) || (issilicon(mob) && istype(mob.machine, /obj/machinery/computer/telecomms/traffic) ))
|
||||
if((istype(mob.machine, /obj/machinery/computer/telecomms/traffic) && (mob.machine in view(1, mob))) || (issilicon(mob) && istype(mob.machine, /obj/machinery/computer/telecomms/traffic) ))
|
||||
var/obj/machinery/computer/telecomms/traffic/Machine = mob.machine
|
||||
if(Machine.editingcode == mob)
|
||||
Machine.storedcode = "[winget(mob, "tcscode", "text")]"
|
||||
@@ -157,7 +157,7 @@ client/verb/exittcs()
|
||||
client/verb/tcsrevert()
|
||||
set hidden = 1
|
||||
if(mob.machine || issilicon(mob))
|
||||
if((istype(mob.machine, /obj/machinery/computer/telecomms/traffic) && mob.machine in view(1, mob)) || (issilicon(mob) && istype(mob.machine, /obj/machinery/computer/telecomms/traffic) ))
|
||||
if((istype(mob.machine, /obj/machinery/computer/telecomms/traffic) && (mob.machine in view(1, mob))) || (issilicon(mob) && istype(mob.machine, /obj/machinery/computer/telecomms/traffic) ))
|
||||
var/obj/machinery/computer/telecomms/traffic/Machine = mob.machine
|
||||
if(Machine.editingcode != mob)
|
||||
return
|
||||
@@ -186,7 +186,7 @@ client/verb/tcsrevert()
|
||||
client/verb/tcsclearmem()
|
||||
set hidden = 1
|
||||
if(mob.machine || issilicon(mob))
|
||||
if((istype(mob.machine, /obj/machinery/computer/telecomms/traffic) && mob.machine in view(1, mob)) || (issilicon(mob) && istype(mob.machine, /obj/machinery/computer/telecomms/traffic) ))
|
||||
if((istype(mob.machine, /obj/machinery/computer/telecomms/traffic) && (mob.machine in view(1, mob))) || (issilicon(mob) && istype(mob.machine, /obj/machinery/computer/telecomms/traffic) ))
|
||||
var/obj/machinery/computer/telecomms/traffic/Machine = mob.machine
|
||||
if(Machine.editingcode != mob)
|
||||
return
|
||||
|
||||
@@ -6,9 +6,8 @@
|
||||
An object responsible for breaking up source code into tokens for use by the parser.
|
||||
*/
|
||||
/n_Scanner
|
||||
var
|
||||
code
|
||||
list
|
||||
var/code
|
||||
|
||||
/*
|
||||
Var: errors
|
||||
A list of fatal errors found by the scanner. If there are any items in this list, then it is not safe to parse the returned tokens.
|
||||
@@ -16,12 +15,12 @@
|
||||
See Also:
|
||||
- <scriptError>
|
||||
*/
|
||||
errors = new
|
||||
var/list/errors = new
|
||||
/*
|
||||
Var: warnings
|
||||
A list of non-fatal problems in the source code found by the scanner.
|
||||
*/
|
||||
warnings = new
|
||||
var/list/warnings = new
|
||||
|
||||
proc
|
||||
/*
|
||||
@@ -49,21 +48,19 @@
|
||||
A scanner implementation for n_Script.
|
||||
*/
|
||||
/n_Scanner/nS_Scanner
|
||||
|
||||
var
|
||||
/*
|
||||
Variable: codepos
|
||||
The scanner's position in the source code.
|
||||
*/
|
||||
codepos = 1
|
||||
line = 1
|
||||
linepos = 0 //column=codepos-linepos
|
||||
n_scriptOptions/nS_Options/options
|
||||
var/codepos = 1
|
||||
var/line = 1
|
||||
var/linepos = 0 //column=codepos-linepos
|
||||
var/n_scriptOptions/nS_Options/options
|
||||
|
||||
commenting = 0
|
||||
var/commenting = 0
|
||||
// 1: single-line
|
||||
// 2: multi-line
|
||||
list
|
||||
|
||||
/*
|
||||
Variable: ignore
|
||||
A list of characters that are ignored by the scanner.
|
||||
@@ -71,7 +68,8 @@
|
||||
Default Value:
|
||||
Whitespace
|
||||
*/
|
||||
ignore = list(" ", "\t", "\n") //Don't add tokens for whitespace
|
||||
var/list/ignore = list(" ", "\t", "\n") //Don't add tokens for whitespace
|
||||
|
||||
/*
|
||||
Variable: end_stmt
|
||||
A list of characters that end a statement. Each item may only be one character long.
|
||||
@@ -79,7 +77,7 @@
|
||||
Default Value:
|
||||
Semicolon
|
||||
*/
|
||||
end_stmt = list(";")
|
||||
var/list/end_stmt = list(";")
|
||||
/*
|
||||
Variable: string_delim
|
||||
A list of characters that can start and end strings.
|
||||
@@ -87,12 +85,12 @@
|
||||
Default Value:
|
||||
Double and single quotes.
|
||||
*/
|
||||
string_delim = list("\"", "'")
|
||||
var/list/string_delim = list("\"", "'")
|
||||
/*
|
||||
Variable: delim
|
||||
A list of characters that denote the start of a new token. This list is automatically populated.
|
||||
*/
|
||||
delim = new
|
||||
var/list/delim = new
|
||||
|
||||
/*
|
||||
Macro: COL
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
|
||||
if(istype(W, /obj/item/card/id))
|
||||
var/obj/item/card/id/C = W
|
||||
if(access_captain in C.access || access_security in C.access || access_engine in C.access)
|
||||
if((access_captain in C.access) || (access_security in C.access) || (access_engine in C.access))
|
||||
src.locked = !src.locked
|
||||
to_chat(user, "Controls are now [src.locked ? "locked." : "unlocked."]")
|
||||
updateDialog()
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
/obj/machinery/shield_gen/attackby(obj/item/W, mob/user)
|
||||
if(istype(W, /obj/item/card/id))
|
||||
var/obj/item/card/id/C = W
|
||||
if(access_captain in C.access || access_security in C.access || access_engine in C.access)
|
||||
if((access_captain in C.access) || (access_security in C.access) || (access_engine in C.access))
|
||||
src.locked = !src.locked
|
||||
to_chat(user, "Controls are now [src.locked ? "locked." : "unlocked."]")
|
||||
updateDialog()
|
||||
|
||||
@@ -64,9 +64,9 @@ var/list/escape_pods = list()
|
||||
if(..())
|
||||
return 1
|
||||
|
||||
if("manual_arm")
|
||||
if(href_list["manual_arm"])
|
||||
pod.arming_controller.arm()
|
||||
if("force_launch")
|
||||
if(href_list["force_launch"])
|
||||
if (pod.can_force())
|
||||
pod.force_launch(src)
|
||||
else if (emergency_shuttle.departed && pod.can_launch()) //allow players to manually launch ahead of time if the shuttle leaves
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
..()
|
||||
if(emergency_shuttle.shuttle)
|
||||
CRASH("An emergency shuttle has already been created.")
|
||||
return
|
||||
emergency_shuttle.shuttle = src
|
||||
|
||||
/datum/shuttle/autodock/ferry/emergency/arrived()
|
||||
|
||||
@@ -266,7 +266,7 @@
|
||||
return SURGERY_FAILURE
|
||||
|
||||
if(O.species_restricted)
|
||||
if(!target.species.name in O.species_restricted)
|
||||
if(!(target.species.name in O.species_restricted))
|
||||
to_chat(user, SPAN_WARNING("\The [O] is not compatible with \the [target]'s biology."))
|
||||
return SURGERY_FAILURE
|
||||
|
||||
|
||||
@@ -137,8 +137,8 @@
|
||||
if(!ishuman(target))
|
||||
return 0
|
||||
|
||||
if (target_zone == BP_MOUTH || target_zone == BP_EYES)
|
||||
return 0
|
||||
if (target_zone == BP_MOUTH)
|
||||
return 0
|
||||
|
||||
var/obj/item/organ/external/affected = target.get_organ(target_zone)
|
||||
return affected && affected.open == 3 && (affected.status & ORGAN_DEAD)
|
||||
@@ -248,4 +248,4 @@
|
||||
return
|
||||
rig.reset()
|
||||
user.visible_message("<span class='notice'>[user] has cut through the support systems of [target]'s [rig] with \the [tool].</span>", \
|
||||
"<span class='notice'>You have cut through the support systems of [target]'s [rig] with \the [tool].</span>")
|
||||
"<span class='notice'>You have cut through the support systems of [target]'s [rig] with \the [tool].</span>")
|
||||
|
||||
@@ -181,8 +181,6 @@
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You need a better grip to do that!</span>")
|
||||
return
|
||||
qdel(W)
|
||||
return
|
||||
|
||||
if(!dropsafety(W))
|
||||
return
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
|
||||
var/mob/abstract/observer/G = ghosts[target]
|
||||
|
||||
if(!G in ghosts)
|
||||
if(!(G in ghosts))
|
||||
statuscode = 404
|
||||
response = "Target not in ghosts list"
|
||||
data = null
|
||||
|
||||
@@ -20,15 +20,18 @@
|
||||
s["transferring"] = !!(emergency_shuttle?.online())
|
||||
|
||||
s["players"] = clients.len
|
||||
s["admins"] = 0
|
||||
s["staff"] = staff.len
|
||||
|
||||
var/admin_count = 0
|
||||
|
||||
for(var/S in staff)
|
||||
var/client/C = S
|
||||
if(C.holder.fakekey)
|
||||
continue
|
||||
if(C.holder.rights & (R_MOD|R_ADMIN))
|
||||
s["admins"]++
|
||||
admin_count++
|
||||
|
||||
s["admins"] = admin_count
|
||||
|
||||
statuscode = 200
|
||||
response = "Server status fetched."
|
||||
|
||||
Reference in New Issue
Block a user