Merge branch 'master' into upstream-merge-32188
This commit is contained in:
@@ -701,7 +701,8 @@
|
||||
|
||||
/datum/admins/proc/output_ai_laws()
|
||||
var/ai_number = 0
|
||||
for(var/mob/living/silicon/S in GLOB.mob_list)
|
||||
for(var/i in GLOB.silicon_mobs)
|
||||
var/mob/living/silicon/S = i
|
||||
ai_number++
|
||||
if(isAI(S))
|
||||
to_chat(usr, "<b>AI [key_name(S, usr)]'s laws:</b>")
|
||||
|
||||
@@ -253,7 +253,7 @@
|
||||
return
|
||||
var/dat = "<B>Showing DNA from blood.</B><HR>"
|
||||
dat += "<table cellspacing=5><tr><th>Name</th><th>DNA</th><th>Blood Type</th></tr>"
|
||||
for(var/mob/living/carbon/human/H in GLOB.mob_list)
|
||||
for(var/mob/living/carbon/human/H in GLOB.carbon_list)
|
||||
if(H.ckey)
|
||||
dat += "<tr><td>[H]</td><td>[H.dna.unique_enzymes]</td><td>[H.dna.blood_type]</td></tr>"
|
||||
dat += "</table>"
|
||||
@@ -263,7 +263,7 @@
|
||||
return
|
||||
var/dat = "<B>Showing Fingerprints.</B><HR>"
|
||||
dat += "<table cellspacing=5><tr><th>Name</th><th>Fingerprints</th></tr>"
|
||||
for(var/mob/living/carbon/human/H in GLOB.mob_list)
|
||||
for(var/mob/living/carbon/human/H in GLOB.carbon_list)
|
||||
if(H.ckey)
|
||||
dat += "<tr><td>[H]</td><td>[md5(H.dna.uni_identity)]</td></tr>"
|
||||
dat += "</table>"
|
||||
@@ -273,7 +273,7 @@
|
||||
if(!check_rights(R_FUN))
|
||||
return
|
||||
SSblackbox.record_feedback("tally", "admin_secrets_fun_used", 1, "Monkeyize All Humans")
|
||||
for(var/mob/living/carbon/human/H in GLOB.mob_list)
|
||||
for(var/mob/living/carbon/human/H in GLOB.carbon_list)
|
||||
spawn(0)
|
||||
H.monkeyize()
|
||||
ok = 1
|
||||
@@ -287,7 +287,7 @@
|
||||
log_admin("[key_name(usr)] turned all humans into [result]", 1)
|
||||
message_admins("\blue [key_name_admin(usr)] turned all humans into [result]")
|
||||
var/newtype = GLOB.species_list[result]
|
||||
for(var/mob/living/carbon/human/H in GLOB.mob_list)
|
||||
for(var/mob/living/carbon/human/H in GLOB.carbon_list)
|
||||
H.set_species(newtype)
|
||||
|
||||
if("tripleAI")
|
||||
@@ -380,7 +380,7 @@
|
||||
return
|
||||
SSblackbox.record_feedback("tally", "admin_secrets_fun_used", 1, "Chinese Cartoons")
|
||||
message_admins("[key_name_admin(usr)] made everything kawaii.")
|
||||
for(var/mob/living/carbon/human/H in GLOB.mob_list)
|
||||
for(var/mob/living/carbon/human/H in GLOB.carbon_list)
|
||||
SEND_SOUND(H, sound('sound/ai/animes.ogg'))
|
||||
|
||||
if(H.dna.species.id == "human")
|
||||
@@ -505,7 +505,7 @@
|
||||
if(!check_rights(R_FUN))
|
||||
return
|
||||
SSblackbox.record_feedback("tally", "admin_secrets_fun_used", 1, "Dwarf Beards")
|
||||
for(var/mob/living/carbon/human/B in GLOB.mob_list)
|
||||
for(var/mob/living/carbon/human/B in GLOB.carbon_list)
|
||||
B.facial_hair_style = "Dward Beard"
|
||||
B.update_hair()
|
||||
message_admins("[key_name_admin(usr)] activated dorf mode")
|
||||
|
||||
@@ -741,7 +741,7 @@ GLOBAL_PROTECT(LastAdminCalledProc)
|
||||
if("Mobs")
|
||||
to_chat(usr, jointext(GLOB.mob_list,","))
|
||||
if("Living Mobs")
|
||||
to_chat(usr, jointext(GLOB.living_mob_list,","))
|
||||
to_chat(usr, jointext(GLOB.alive_mob_list,","))
|
||||
if("Dead Mobs")
|
||||
to_chat(usr, jointext(GLOB.dead_mob_list,","))
|
||||
if("Clients")
|
||||
|
||||
@@ -1006,7 +1006,7 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits
|
||||
if(confirm != "Yes")
|
||||
return
|
||||
|
||||
for(var/mob/living/carbon/human/H in GLOB.mob_list)
|
||||
for(var/mob/living/carbon/human/H in GLOB.carbon_list)
|
||||
new /obj/item/organ/zombie_infection(H)
|
||||
|
||||
message_admins("[key_name_admin(usr)] added a latent zombie infection to all humans.")
|
||||
@@ -1043,7 +1043,7 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits
|
||||
if(confirm != "Yes")
|
||||
return
|
||||
|
||||
var/list/mobs = shuffle(GLOB.living_mob_list.Copy()) // might change while iterating
|
||||
var/list/mobs = shuffle(GLOB.alive_mob_list.Copy()) // might change while iterating
|
||||
var/who_did_it = key_name_admin(usr)
|
||||
|
||||
message_admins("[key_name_admin(usr)] started polymorphed all living mobs.")
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
|
||||
|
||||
////////// wildwest papers
|
||||
|
||||
|
||||
/obj/item/paper/fluff/awaymissions/wildwest/grinder
|
||||
info = "meat grinder requires sacri"
|
||||
|
||||
@@ -124,7 +124,7 @@
|
||||
if("Peace")
|
||||
to_chat(user, "<B>Whatever alien sentience that the Wish Granter possesses is satisfied with your wish. There is a distant wailing as the last of the Faithless begin to die, then silence.</B>")
|
||||
to_chat(user, "You feel as if you just narrowly avoided a terrible fate...")
|
||||
for(var/mob/living/simple_animal/hostile/faithless/F in GLOB.mob_list)
|
||||
for(var/mob/living/simple_animal/hostile/faithless/F in GLOB.mob_living_list)
|
||||
F.death()
|
||||
|
||||
|
||||
|
||||
@@ -80,6 +80,12 @@
|
||||
item_state = "overalls"
|
||||
body_parts_covered = CHEST|GROIN|LEGS
|
||||
|
||||
/obj/item/clothing/suit/apron/purple_bartender
|
||||
name = "purple bartender apron"
|
||||
desc = "A fancy purple apron for a stylish person."
|
||||
icon_state = "purplebartenderapron"
|
||||
item_state = "purplebartenderapron"
|
||||
body_parts_covered = CHEST|GROIN|LEGS
|
||||
|
||||
/obj/item/clothing/suit/syndicatefake
|
||||
name = "black and red space suit replica"
|
||||
|
||||
@@ -8,6 +8,13 @@
|
||||
item_color = "barman"
|
||||
alt_covers_chest = 1
|
||||
|
||||
/obj/item/clothing/under/rank/bartender/purple
|
||||
desc = "It looks like it has lots of flair!"
|
||||
name = "purple bartender's uniform"
|
||||
icon_state = "purplebartender"
|
||||
item_state = "purplebartender"
|
||||
alt_covers_chest = 1
|
||||
|
||||
/obj/item/clothing/under/rank/captain //Alright, technically not a 'civilian' but its better then giving a .dm file for a single define.
|
||||
desc = "It's a blue jumpsuit with some gold markings denoting the rank of \"Captain\"."
|
||||
name = "captain's jumpsuit"
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
if(!virus_type)
|
||||
virus_type = pick(/datum/disease/dnaspread, /datum/disease/advance/flu, /datum/disease/advance/cold, /datum/disease/brainrot, /datum/disease/magnitis)
|
||||
|
||||
for(var/mob/living/carbon/human/H in shuffle(GLOB.living_mob_list))
|
||||
for(var/mob/living/carbon/human/H in shuffle(GLOB.alive_mob_list))
|
||||
var/turf/T = get_turf(H)
|
||||
if(!T)
|
||||
continue
|
||||
|
||||
@@ -8,14 +8,14 @@
|
||||
|
||||
/datum/round_event/spooky/start()
|
||||
..()
|
||||
for(var/mob/living/carbon/human/H in GLOB.mob_list)
|
||||
for(var/mob/living/carbon/human/H in GLOB.carbon_list)
|
||||
var/obj/item/storage/backpack/b = locate() in H.contents
|
||||
if(b)
|
||||
new /obj/item/storage/spooky(b)
|
||||
|
||||
for(var/mob/living/simple_animal/pet/dog/corgi/Ian/Ian in GLOB.mob_list)
|
||||
for(var/mob/living/simple_animal/pet/dog/corgi/Ian/Ian in GLOB.mob_living_list)
|
||||
Ian.place_on_head(new /obj/item/bedsheet(Ian))
|
||||
for(var/mob/living/simple_animal/parrot/Poly/Poly in GLOB.mob_list)
|
||||
for(var/mob/living/simple_animal/parrot/Poly/Poly in GLOB.mob_living_list)
|
||||
new /mob/living/simple_animal/parrot/Poly/ghost(Poly.loc)
|
||||
qdel(Poly)
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
|
||||
/datum/round_event/valentines/start()
|
||||
..()
|
||||
for(var/mob/living/carbon/human/H in GLOB.living_mob_list)
|
||||
for(var/mob/living/carbon/human/H in GLOB.alive_mob_list)
|
||||
H.put_in_hands(new /obj/item/valentine)
|
||||
var/obj/item/storage/backpack/b = locate() in H.contents
|
||||
new /obj/item/reagent_containers/food/snacks/candyheart(b)
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
for(var/turf/open/floor/T in orange(1,xmas))
|
||||
for(var/i=1,i<=rand(1,5),i++)
|
||||
new /obj/item/a_gift(T)
|
||||
for(var/mob/living/simple_animal/pet/dog/corgi/Ian/Ian in GLOB.mob_list)
|
||||
for(var/mob/living/simple_animal/pet/dog/corgi/Ian/Ian in GLOB.mob_living_list)
|
||||
Ian.place_on_head(new /obj/item/clothing/head/helmet/space/santahat(Ian))
|
||||
for(var/obj/machinery/computer/security/telescreen/entertainment/Monitor in GLOB.machines)
|
||||
Monitor.icon_state = "entertainment_xmas"
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
|
||||
/datum/round_event/ion_storm/start()
|
||||
//AI laws
|
||||
for(var/mob/living/silicon/ai/M in GLOB.living_mob_list)
|
||||
for(var/mob/living/silicon/ai/M in GLOB.alive_mob_list)
|
||||
M.laws_sanity_check()
|
||||
if(M.stat != DEAD && M.see_in_dark != 0)
|
||||
if(prob(replaceLawsetChance))
|
||||
@@ -55,7 +55,7 @@
|
||||
M.post_lawchange()
|
||||
|
||||
if(botEmagChance)
|
||||
for(var/mob/living/simple_animal/bot/bot in GLOB.living_mob_list)
|
||||
for(var/mob/living/simple_animal/bot/bot in GLOB.alive_mob_list)
|
||||
if(prob(botEmagChance))
|
||||
bot.emag_act()
|
||||
|
||||
|
||||
@@ -9,5 +9,5 @@
|
||||
fakeable = FALSE
|
||||
|
||||
/datum/round_event/mass_hallucination/start()
|
||||
for(var/mob/living/carbon/C in GLOB.living_mob_list)
|
||||
for(var/mob/living/carbon/C in GLOB.alive_mob_list)
|
||||
C.hallucination += rand(20, 50)
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
// find our chosen mob to breathe life into
|
||||
// Mobs have to be simple animals, mindless and on station
|
||||
var/list/potential = list()
|
||||
for(var/mob/living/simple_animal/L in GLOB.living_mob_list)
|
||||
for(var/mob/living/simple_animal/L in GLOB.alive_mob_list)
|
||||
var/turf/T = get_turf(L)
|
||||
if(!(T.z in GLOB.station_z_levels))
|
||||
continue
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
fakeable = FALSE
|
||||
|
||||
/datum/round_event/spontaneous_appendicitis/start()
|
||||
for(var/mob/living/carbon/human/H in shuffle(GLOB.living_mob_list))
|
||||
for(var/mob/living/carbon/human/H in shuffle(GLOB.alive_mob_list))
|
||||
if(!H.client)
|
||||
continue
|
||||
if(H.stat == DEAD)
|
||||
|
||||
@@ -9,7 +9,8 @@
|
||||
|
||||
/datum/round_event/wizard/robelesscasting/start()
|
||||
|
||||
for(var/mob/living/L in GLOB.mob_list) //Hey if a corgi has magic missle he should get the same benifit as anyone
|
||||
for(var/i in GLOB.mob_living_list) //Hey if a corgi has magic missle he should get the same benifit as anyone
|
||||
var/mob/living/L = i
|
||||
if(L.mind && L.mind.spell_list.len != 0)
|
||||
var/spell_improved = FALSE
|
||||
for(var/obj/effect/proc_holder/spell/S in L.mind.spell_list)
|
||||
@@ -29,7 +30,8 @@
|
||||
earliest_start = 0
|
||||
|
||||
/datum/round_event/wizard/improvedcasting/start()
|
||||
for(var/mob/living/L in GLOB.mob_list)
|
||||
for(var/i in GLOB.mob_living_list)
|
||||
var/mob/living/L = i
|
||||
if(L.mind && L.mind.spell_list.len != 0)
|
||||
for(var/obj/effect/proc_holder/spell/S in L.mind.spell_list)
|
||||
S.name = initial(S.name)
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
ruins_spaceworthiness = 1
|
||||
ruins_wizard_loadout = 1
|
||||
|
||||
for(var/mob/living/carbon/human/H in GLOB.living_mob_list)
|
||||
for(var/mob/living/carbon/human/H in GLOB.alive_mob_list)
|
||||
if(ruins_spaceworthiness && !(H.z in GLOB.station_z_levels) || isspaceturf(H.loc) || isplasmaman(H))
|
||||
continue //#savetheminers
|
||||
if(ruins_wizard_loadout && iswizard(H))
|
||||
@@ -54,7 +54,7 @@
|
||||
I.flags_1 |= NODROP_1
|
||||
I.name = "cursed " + I.name
|
||||
|
||||
for(var/mob/living/carbon/human/H in GLOB.living_mob_list)
|
||||
for(var/mob/living/carbon/human/H in GLOB.alive_mob_list)
|
||||
var/datum/effect_system/smoke_spread/smoke = new
|
||||
smoke.set_up(0, H.loc)
|
||||
smoke.start()
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
|
||||
nation += pick("stan", "topia", "land", "nia", "ca", "tova", "dor", "ador", "tia", "sia", "ano", "tica", "tide", "cis", "marea", "co", "taoide", "slavia", "stotzka")
|
||||
|
||||
for(var/mob/living/carbon/human/H in GLOB.mob_list)
|
||||
for(var/mob/living/carbon/human/H in GLOB.carbon_list)
|
||||
if(H.mind)
|
||||
var/datum/mind/M = H.mind
|
||||
if(M.assigned_role && !(M in SSticker.mode.traitors))
|
||||
|
||||
@@ -83,7 +83,8 @@
|
||||
|
||||
. = ..()
|
||||
GLOB.poi_list.Remove(src)
|
||||
for(var/mob/M in GLOB.mob_list)
|
||||
for(var/i in GLOB.player_list)
|
||||
var/mob/M = i
|
||||
var/message = "<span class='warning'>A dark temptation has passed from this world"
|
||||
if(M in color_altered_mobs)
|
||||
message += " and you're finally able to forgive yourself"
|
||||
|
||||
@@ -7,6 +7,6 @@
|
||||
|
||||
/datum/round_event/wizard/invincible/start()
|
||||
|
||||
for(var/mob/living/carbon/human/H in GLOB.living_mob_list)
|
||||
for(var/mob/living/carbon/human/H in GLOB.alive_mob_list)
|
||||
H.reagents.add_reagent("adminordrazine", 40) //100 ticks of absolute invinciblity (barring gibs)
|
||||
to_chat(H, "<span class='notice'>You feel invincible, nothing can hurt you!</span>")
|
||||
@@ -7,7 +7,7 @@
|
||||
var/mobs_to_dupe = 0
|
||||
|
||||
/datum/round_event_control/wizard/petsplosion/preRunEvent()
|
||||
for(var/mob/living/simple_animal/F in GLOB.living_mob_list)
|
||||
for(var/mob/living/simple_animal/F in GLOB.alive_mob_list)
|
||||
if(!ishostile(F) && (F.z in GLOB.station_z_levels))
|
||||
mobs_to_dupe++
|
||||
if(mobs_to_dupe > 100 || !mobs_to_dupe)
|
||||
@@ -23,7 +23,7 @@
|
||||
/datum/round_event/wizard/petsplosion/tick()
|
||||
if(activeFor >= 30 * countdown) // 0 seconds : 2 animals | 30 seconds : 4 animals | 1 minute : 8 animals
|
||||
countdown += 1
|
||||
for(var/mob/living/simple_animal/F in GLOB.living_mob_list) //If you cull the heard before the next replication, things will be easier for you
|
||||
for(var/mob/living/simple_animal/F in GLOB.alive_mob_list) //If you cull the heard before the next replication, things will be easier for you
|
||||
if(!ishostile(F) && (F.z in GLOB.station_z_levels))
|
||||
new F.type(F.loc)
|
||||
mobs_duped++
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
if(prob(50))
|
||||
all_the_same = 1
|
||||
|
||||
for(var/mob/living/carbon/human/H in GLOB.mob_list) //yes, even the dead
|
||||
for(var/mob/living/carbon/human/H in GLOB.carbon_list) //yes, even the dead
|
||||
H.set_species(new_species)
|
||||
H.real_name = new_species.random_name(H.gender,1)
|
||||
H.dna.unique_enzymes = H.dna.generate_unique_enzymes()
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
var/list/moblocs = list()
|
||||
var/list/mobs = list()
|
||||
|
||||
for(var/mob/living/carbon/human/H in GLOB.living_mob_list)
|
||||
for(var/mob/living/carbon/human/H in GLOB.alive_mob_list)
|
||||
if(!(H.z in GLOB.station_z_levels))
|
||||
continue //lets not try to strand people in space or stuck in the wizards den
|
||||
moblocs += H.loc
|
||||
@@ -30,7 +30,7 @@
|
||||
do_teleport(H, moblocs[moblocs.len])
|
||||
moblocs.len -= 1
|
||||
|
||||
for(var/mob/living/carbon/human/H in GLOB.living_mob_list)
|
||||
for(var/mob/living/carbon/human/H in GLOB.alive_mob_list)
|
||||
var/datum/effect_system/smoke_spread/smoke = new
|
||||
smoke.set_up(0, H.loc)
|
||||
smoke.start()
|
||||
@@ -48,7 +48,7 @@
|
||||
var/list/mobnames = list()
|
||||
var/list/mobs = list()
|
||||
|
||||
for(var/mob/living/carbon/human/H in GLOB.living_mob_list)
|
||||
for(var/mob/living/carbon/human/H in GLOB.alive_mob_list)
|
||||
mobnames += H.real_name
|
||||
mobs += H
|
||||
|
||||
@@ -64,7 +64,7 @@
|
||||
H.real_name = mobnames[mobnames.len]
|
||||
mobnames.len -= 1
|
||||
|
||||
for(var/mob/living/carbon/human/H in GLOB.living_mob_list)
|
||||
for(var/mob/living/carbon/human/H in GLOB.alive_mob_list)
|
||||
var/datum/effect_system/smoke_spread/smoke = new
|
||||
smoke.set_up(0, H.loc)
|
||||
smoke.start()
|
||||
@@ -81,7 +81,7 @@
|
||||
/datum/round_event/wizard/shuffleminds/start()
|
||||
var/list/mobs = list()
|
||||
|
||||
for(var/mob/living/carbon/human/H in GLOB.living_mob_list)
|
||||
for(var/mob/living/carbon/human/H in GLOB.alive_mob_list)
|
||||
if(H.stat || !H.mind || iswizard(H))
|
||||
continue //the wizard(s) are spared on this one
|
||||
mobs += H
|
||||
@@ -98,7 +98,7 @@
|
||||
swapper.cast(list(H), mobs[mobs.len], 1)
|
||||
mobs -= mobs[mobs.len]
|
||||
|
||||
for(var/mob/living/carbon/human/H in GLOB.living_mob_list)
|
||||
for(var/mob/living/carbon/human/H in GLOB.alive_mob_list)
|
||||
var/datum/effect_system/smoke_spread/smoke = new
|
||||
smoke.set_up(0, H.loc)
|
||||
smoke.start()
|
||||
|
||||
@@ -460,7 +460,7 @@ GLOBAL_LIST_INIT(hallucinations_major, list(
|
||||
var/image/A = null
|
||||
var/kind = force_kind ? force_kind : pick("monkey","corgi","carp","skeleton","demon","zombie")
|
||||
feedback_details += "Type: [kind]"
|
||||
for(var/mob/living/carbon/human/H in GLOB.living_mob_list)
|
||||
for(var/mob/living/carbon/human/H in GLOB.alive_mob_list)
|
||||
if(H == target)
|
||||
continue
|
||||
if(skip_nearby && (H in view(target)))
|
||||
@@ -538,7 +538,7 @@ GLOBAL_LIST_INIT(hallucinations_major, list(
|
||||
var/mob/living/carbon/human/clone = null
|
||||
var/clone_weapon = null
|
||||
|
||||
for(var/mob/living/carbon/human/H in GLOB.living_mob_list)
|
||||
for(var/mob/living/carbon/human/H in GLOB.alive_mob_list)
|
||||
if(H.stat || H.lying)
|
||||
continue
|
||||
clone = H
|
||||
@@ -769,7 +769,7 @@ GLOBAL_LIST_INIT(hallucinations_major, list(
|
||||
target.client.images.Remove(speech_overlay)
|
||||
else // Radio talk
|
||||
var/list/humans = list()
|
||||
for(var/mob/living/carbon/human/H in GLOB.living_mob_list)
|
||||
for(var/mob/living/carbon/human/H in GLOB.alive_mob_list)
|
||||
humans += H
|
||||
person = pick(humans)
|
||||
var/message = target.compose_message(person,understood_language,pick(radio_messages),"1459",person.get_spans(),face_name = TRUE)
|
||||
|
||||
@@ -527,8 +527,8 @@
|
||||
// You're an idiot for thinking that one of the most corrosive and deadly gasses would be beneficial
|
||||
if(S.has_reagent("fluorine", 1))
|
||||
adjustHealth(-round(S.get_reagent_amount("fluorine") * 2))
|
||||
adjustToxic(round(S.get_reagent_amount("flourine") * 2.5))
|
||||
adjustWater(-round(S.get_reagent_amount("flourine") * 0.5))
|
||||
adjustToxic(round(S.get_reagent_amount("fluorine") * 2.5))
|
||||
adjustWater(-round(S.get_reagent_amount("fluorine") * 0.5))
|
||||
adjustWeeds(-rand(1,4))
|
||||
|
||||
// You're an idiot for thinking that one of the most corrosive and deadly gasses would be beneficial
|
||||
|
||||
@@ -56,13 +56,13 @@
|
||||
name = "tesla power relay"
|
||||
desc = "A seemingly enigmatic device which connects to nearby APCs wirelessly and draws power from them."
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
extended_desc = "The siphon generates 250W of energy, so long as an APC is in the same room, with a cell that has energy. It will always drain \
|
||||
extended_desc = "The siphon generates 50 W of energy, so long as an APC is in the same room, with a cell that has energy. It will always drain \
|
||||
from the 'equipment' power channel."
|
||||
icon_state = "power_relay"
|
||||
complexity = 7
|
||||
origin_tech = list(TECH_POWER = 3, TECH_ENGINEERING = 3, TECH_DATA = 2)
|
||||
spawn_flags = IC_SPAWN_RESEARCH
|
||||
var/power_amount = 150
|
||||
var/power_amount = 50
|
||||
//fuel cell
|
||||
|
||||
/obj/item/integrated_circuit/passive/power/chemical_cell
|
||||
@@ -108,7 +108,7 @@
|
||||
name = "large tesla power relay"
|
||||
desc = "A seemingly enigmatic device which connects to nearby APCs wirelessly and draws power from them, now in industiral size!"
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
extended_desc = "The siphon generates 2 kW of energy, so long as an APC is in the same room, with a cell that has energy. It will always drain \
|
||||
extended_desc = "The siphon generates 1 kW of energy, so long as an APC is in the same room, with a cell that has energy. It will always drain \
|
||||
from the 'equipment' power channel."
|
||||
icon_state = "power_relay"
|
||||
complexity = 15
|
||||
|
||||
@@ -238,41 +238,6 @@
|
||||
origin_tech = list(TECH_ENGINEERING = 3, TECH_DATA = 3, TECH_COMBAT = 10)
|
||||
spawn_flags = null // Used for world initializing, see the #defines above.
|
||||
*/
|
||||
/obj/item/integrated_circuit/manipulation/shocker
|
||||
name = "shocker circuit"
|
||||
desc = "Used to shock adjacent creatures with electricity."
|
||||
icon_state = "shocker"
|
||||
extended_desc = "The circuit accepts a reference to creature,who needs to be shocked. It can shock target on adjacent tiles. \
|
||||
Severity determines hardness of shock and it's power consumption. It's given between 0 and 60."
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
complexity = 10
|
||||
inputs = list("target" = IC_PINTYPE_REF,"severity" = IC_PINTYPE_NUMBER)
|
||||
outputs = list()
|
||||
activators = list("shock" = IC_PINTYPE_PULSE_IN)
|
||||
spawn_flags = IC_SPAWN_RESEARCH
|
||||
power_draw_per_use = 0
|
||||
|
||||
/obj/item/integrated_circuit/manipulation/shocker/on_data_written()
|
||||
var/s = get_pin_data(IC_INPUT, 2)
|
||||
power_draw_per_use = Clamp(s,0,60)*1200/60
|
||||
|
||||
/obj/item/integrated_circuit/manipulation/shocker/do_work()
|
||||
..()
|
||||
var/turf/T = get_turf(src)
|
||||
var/atom/movable/AM = get_pin_data_as_type(IC_INPUT, 1, /mob/living)
|
||||
if(!istype(AM,/mob/living)) //Invalid input
|
||||
return
|
||||
var/mob/living/M = AM
|
||||
if(!M.Adjacent(T))
|
||||
return //Can't reach
|
||||
to_chat(M, "<span class='danger'>You feel a sharp shock!</span>")
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(12, 1, src)
|
||||
s.start()
|
||||
var/stf=Clamp(get_pin_data(IC_INPUT, 2),0,60)
|
||||
M.Knockdown(stf)
|
||||
M.apply_effect(STUTTER, stf)
|
||||
|
||||
/obj/item/integrated_circuit/manipulation/plant_module
|
||||
name = "plant manipulation module"
|
||||
desc = "Used to uproot weeds or harvest plants in trays."
|
||||
@@ -440,4 +405,4 @@
|
||||
var/_y = Clamp(T.y + target_y.data, 0, world.maxy)
|
||||
|
||||
A.forceMove(drop_location())
|
||||
A.throw_at(locate(_x, _y, T.z), round(Clamp(sqrt(target_x.data*target_x.data+target_y.data*target_y.data),0,8),1), 3)
|
||||
A.throw_at(locate(_x, _y, T.z), round(Clamp(sqrt(target_x.data*target_x.data+target_y.data*target_y.data),0,8),1), 3)
|
||||
|
||||
@@ -480,6 +480,10 @@
|
||||
name = "Long Hair 2"
|
||||
icon_state = "hair_long2"
|
||||
|
||||
/datum/sprite_accessory/hair/long3
|
||||
name = "Long Hair 3"
|
||||
icon_state = "hair_long3"
|
||||
|
||||
/datum/sprite_accessory/hair/pixie
|
||||
name = "Pixie Cut"
|
||||
icon_state = "hair_pixie"
|
||||
|
||||
@@ -566,7 +566,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
set desc= "Take over the body of a mindless creature!"
|
||||
|
||||
var/list/possessible = list()
|
||||
for(var/mob/living/L in GLOB.living_mob_list)
|
||||
for(var/mob/living/L in GLOB.alive_mob_list)
|
||||
if(!(L in GLOB.player_list) && !L.mind)
|
||||
possessible += L
|
||||
|
||||
|
||||
@@ -63,7 +63,7 @@
|
||||
if(!newbrain.damaged_brain) // the brain organ hasn't been beaten to death.
|
||||
brainmob.stat = CONSCIOUS //we manually revive the brain mob
|
||||
GLOB.dead_mob_list -= brainmob
|
||||
GLOB.living_mob_list += brainmob
|
||||
GLOB.alive_mob_list += brainmob
|
||||
|
||||
brainmob.reset_perspective()
|
||||
brain = newbrain
|
||||
@@ -95,7 +95,7 @@
|
||||
brainmob.stat = DEAD
|
||||
brainmob.emp_damage = 0
|
||||
brainmob.reset_perspective() //so the brainmob follows the brain organ instead of the mmi. And to update our vision
|
||||
GLOB.living_mob_list -= brainmob //Get outta here
|
||||
GLOB.alive_mob_list -= brainmob //Get outta here
|
||||
GLOB.dead_mob_list += brainmob
|
||||
brain.brainmob = brainmob //Set the brain to use the brainmob
|
||||
brainmob = null //Set mmi brainmob var to null
|
||||
|
||||
@@ -126,7 +126,7 @@ GLOBAL_VAR(posibrain_notify_cooldown)
|
||||
brainmob.mind.assigned_role = new_role
|
||||
brainmob.stat = CONSCIOUS
|
||||
GLOB.dead_mob_list -= brainmob
|
||||
GLOB.living_mob_list += brainmob
|
||||
GLOB.alive_mob_list += brainmob
|
||||
|
||||
visible_message(new_mob_message)
|
||||
check_success()
|
||||
|
||||
@@ -110,11 +110,12 @@ Des: Gives the client of the alien an image on each infected mob.
|
||||
----------------------------------------*/
|
||||
/mob/living/carbon/alien/proc/AddInfectionImages()
|
||||
if (client)
|
||||
for (var/mob/living/C in GLOB.mob_list)
|
||||
if(C.status_flags & XENO_HOST)
|
||||
var/obj/item/organ/body_egg/alien_embryo/A = C.getorgan(/obj/item/organ/body_egg/alien_embryo)
|
||||
for (var/i in GLOB.mob_living_list)
|
||||
var/mob/living/L = i
|
||||
if(L.status_flags & XENO_HOST)
|
||||
var/obj/item/organ/body_egg/alien_embryo/A = L.getorgan(/obj/item/organ/body_egg/alien_embryo)
|
||||
if(A)
|
||||
var/I = image('icons/mob/alien.dmi', loc = C, icon_state = "infected[A.stage]")
|
||||
var/I = image('icons/mob/alien.dmi', loc = L, icon_state = "infected[A.stage]")
|
||||
client.images += I
|
||||
return
|
||||
|
||||
|
||||
@@ -1,23 +1,23 @@
|
||||
/mob/living/carbon/alien/humanoid/death(gibbed)
|
||||
if(stat == DEAD)
|
||||
return
|
||||
|
||||
. = ..()
|
||||
|
||||
update_canmove()
|
||||
update_icons()
|
||||
status_flags |= CANPUSH
|
||||
|
||||
//When the alien queen dies, all others must pay the price for letting her die.
|
||||
/mob/living/carbon/alien/humanoid/royal/queen/death(gibbed)
|
||||
if(stat == DEAD)
|
||||
return
|
||||
|
||||
for(var/mob/living/carbon/C in GLOB.living_mob_list)
|
||||
if(C == src) //Make sure not to proc it on ourselves.
|
||||
continue
|
||||
var/obj/item/organ/alien/hivenode/node = C.getorgan(/obj/item/organ/alien/hivenode)
|
||||
if(istype(node)) // just in case someone would ever add a diffirent node to hivenode slot
|
||||
node.queen_death()
|
||||
|
||||
return ..()
|
||||
/mob/living/carbon/alien/humanoid/death(gibbed)
|
||||
if(stat == DEAD)
|
||||
return
|
||||
|
||||
. = ..()
|
||||
|
||||
update_canmove()
|
||||
update_icons()
|
||||
status_flags |= CANPUSH
|
||||
|
||||
//When the alien queen dies, all others must pay the price for letting her die.
|
||||
/mob/living/carbon/alien/humanoid/royal/queen/death(gibbed)
|
||||
if(stat == DEAD)
|
||||
return
|
||||
|
||||
for(var/mob/living/carbon/C in GLOB.alive_mob_list)
|
||||
if(C == src) //Make sure not to proc it on ourselves.
|
||||
continue
|
||||
var/obj/item/organ/alien/hivenode/node = C.getorgan(/obj/item/organ/alien/hivenode)
|
||||
if(istype(node)) // just in case someone would ever add a diffirent node to hivenode slot
|
||||
node.queen_death()
|
||||
|
||||
return ..()
|
||||
|
||||
@@ -111,7 +111,7 @@
|
||||
|
||||
//For alien evolution/promotion/queen finder procs. Checks for an active alien of that type
|
||||
/proc/get_alien_type(var/alienpath)
|
||||
for(var/mob/living/carbon/alien/humanoid/A in GLOB.living_mob_list)
|
||||
for(var/mob/living/carbon/alien/humanoid/A in GLOB.alive_mob_list)
|
||||
if(!istype(A, alienpath))
|
||||
continue
|
||||
if(!A.key || A.stat == DEAD) //Only living aliens with a ckey are valid.
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
|
||||
/mob/living/carbon/alien/humanoid/royal/queen/Initialize()
|
||||
//there should only be one queen
|
||||
for(var/mob/living/carbon/alien/humanoid/royal/queen/Q in GLOB.living_mob_list)
|
||||
for(var/mob/living/carbon/alien/humanoid/royal/queen/Q in GLOB.carbon_list)
|
||||
if(Q == src)
|
||||
continue
|
||||
if(Q.stat == DEAD)
|
||||
|
||||
@@ -2,9 +2,10 @@
|
||||
blood_volume = BLOOD_VOLUME_NORMAL
|
||||
|
||||
/mob/living/carbon/Initialize()
|
||||
. = ..()
|
||||
create_reagents(1000)
|
||||
update_body_parts() //to update the carbon's new bodyparts appearance
|
||||
..()
|
||||
GLOB.carbon_list += src
|
||||
|
||||
/mob/living/carbon/Destroy()
|
||||
//This must be done first, so the mob ghosts correctly before DNA etc is nulled
|
||||
@@ -16,6 +17,7 @@
|
||||
QDEL_LIST(implants)
|
||||
remove_from_all_data_huds()
|
||||
QDEL_NULL(dna)
|
||||
GLOB.carbon_list -= src
|
||||
|
||||
/mob/living/carbon/relaymove(mob/user, direction)
|
||||
if(user in src.stomach_contents)
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
deadchat_broadcast(rendered, follow_target = src, turf_target = T, message_type=DEADCHAT_DEATHRATTLE)
|
||||
if(mind)
|
||||
mind.store_memory("Time of death: [tod]", 0)
|
||||
GLOB.living_mob_list -= src
|
||||
GLOB.alive_mob_list -= src
|
||||
if(!gibbed)
|
||||
GLOB.dead_mob_list += src
|
||||
set_drugginess(0)
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
var/datum/atom_hud/data/human/medical/advanced/medhud = GLOB.huds[DATA_HUD_MEDICAL_ADVANCED]
|
||||
medhud.add_to_hud(src)
|
||||
faction += "[REF(src)]"
|
||||
GLOB.mob_living_list += src
|
||||
|
||||
|
||||
/mob/living/prepare_huds()
|
||||
@@ -47,6 +48,7 @@
|
||||
qdel(I)
|
||||
staticOverlays.len = 0
|
||||
remove_from_all_data_huds()
|
||||
GLOB.mob_living_list -= src
|
||||
|
||||
return ..()
|
||||
|
||||
@@ -368,7 +370,7 @@
|
||||
fully_heal(admin_revive)
|
||||
if(stat == DEAD && can_be_revived()) //in some cases you can't revive (e.g. no brain)
|
||||
GLOB.dead_mob_list -= src
|
||||
GLOB.living_mob_list += src
|
||||
GLOB.alive_mob_list += src
|
||||
suiciding = 0
|
||||
stat = UNCONSCIOUS //the mob starts unconscious,
|
||||
blind_eyes(1)
|
||||
|
||||
@@ -404,14 +404,14 @@
|
||||
if(call_bot_cooldown > world.time)
|
||||
to_chat(src, "<span class='danger'>Error: Your last call bot command is still processing, please wait for the bot to finish calculating a route.</span>")
|
||||
return
|
||||
Bot = locate(href_list["callbot"]) in GLOB.living_mob_list
|
||||
Bot = locate(href_list["callbot"]) in GLOB.alive_mob_list
|
||||
if(!Bot || Bot.remote_disabled || src.control_disabled)
|
||||
return //True if there is no bot found, the bot is manually emagged, or the AI is carded with wireless off.
|
||||
waypoint_mode = 1
|
||||
to_chat(src, "<span class='notice'>Set your waypoint by clicking on a valid location free of obstructions.</span>")
|
||||
return
|
||||
if(href_list["interface"]) //Remotely connect to a bot!
|
||||
Bot = locate(href_list["interface"]) in GLOB.living_mob_list
|
||||
Bot = locate(href_list["interface"]) in GLOB.alive_mob_list
|
||||
if(!Bot || Bot.remote_disabled || src.control_disabled)
|
||||
return
|
||||
Bot.attack_ai(src)
|
||||
@@ -468,7 +468,7 @@
|
||||
d += "<A HREF=?src=[REF(src)];botrefresh=1>Query network status</A><br>"
|
||||
d += "<table width='100%'><tr><td width='40%'><h3>Name</h3></td><td width='30%'><h3>Status</h3></td><td width='30%'><h3>Location</h3></td><td width='10%'><h3>Control</h3></td></tr>"
|
||||
|
||||
for (Bot in GLOB.living_mob_list)
|
||||
for (Bot in GLOB.alive_mob_list)
|
||||
if(Bot.z == ai_Zlevel && !Bot.remote_disabled) //Only non-emagged bots on the same Z-level are detected!
|
||||
bot_area = get_area(Bot)
|
||||
var/bot_mode = Bot.get_mode()
|
||||
|
||||
@@ -9,6 +9,6 @@
|
||||
clear_fullscreens()
|
||||
|
||||
//New pAI's get a brand new mind to prevent meta stuff from their previous life. This new mind causes problems down the line if it's not deleted here.
|
||||
GLOB.living_mob_list -= src
|
||||
GLOB.alive_mob_list -= src
|
||||
ghostize()
|
||||
qdel(src)
|
||||
|
||||
@@ -172,7 +172,7 @@
|
||||
if(mmi.brainmob.stat == DEAD)
|
||||
mmi.brainmob.stat = CONSCIOUS
|
||||
GLOB.dead_mob_list -= mmi.brainmob
|
||||
GLOB.living_mob_list += mmi.brainmob
|
||||
GLOB.alive_mob_list += mmi.brainmob
|
||||
mind.transfer_to(mmi.brainmob)
|
||||
mmi.update_icon()
|
||||
else
|
||||
|
||||
@@ -18,17 +18,19 @@
|
||||
|
||||
//Base proc for anything to call
|
||||
/proc/_alert_drones(msg, dead_can_hear = 0, atom/source, mob/living/faction_checked_mob, exact_faction_match)
|
||||
for(var/W in GLOB.mob_list)
|
||||
var/mob/living/simple_animal/drone/M = W
|
||||
if(istype(M) && M.stat != DEAD)
|
||||
if(faction_checked_mob)
|
||||
if(M.faction_check_mob(faction_checked_mob, exact_faction_match))
|
||||
to_chat(M, msg)
|
||||
else
|
||||
to_chat(M, msg)
|
||||
if(dead_can_hear && source && (M in GLOB.dead_mob_list))
|
||||
if (dead_can_hear && source)
|
||||
for (var/mob/M in GLOB.dead_mob_list)
|
||||
var/link = FOLLOW_LINK(M, source)
|
||||
to_chat(M, "[link] [msg]")
|
||||
for(var/i in GLOB.drones_list)
|
||||
var/mob/living/simple_animal/drone/D = i
|
||||
if(istype(D) && D.stat != DEAD)
|
||||
if(faction_checked_mob)
|
||||
if(D.faction_check_mob(faction_checked_mob, exact_faction_match))
|
||||
to_chat(D, msg)
|
||||
else
|
||||
to_chat(D, msg)
|
||||
|
||||
|
||||
|
||||
//Wrapper for drones to handle factions
|
||||
|
||||
@@ -150,7 +150,8 @@
|
||||
staticOverlays.len = 0
|
||||
|
||||
if(seeStatic)
|
||||
for(var/mob/living/L in GLOB.mob_list)
|
||||
for(var/i in GLOB.mob_living_list)
|
||||
var/mob/living/L = i
|
||||
if(isdrone(L))
|
||||
continue
|
||||
var/image/chosen
|
||||
|
||||
@@ -106,7 +106,7 @@ Difficulty: Hard
|
||||
|
||||
/mob/living/simple_animal/hostile/megafauna/bubblegum/Initialize()
|
||||
. = ..()
|
||||
for(var/mob/living/simple_animal/hostile/megafauna/bubblegum/B in GLOB.mob_list)
|
||||
for(var/mob/living/simple_animal/hostile/megafauna/bubblegum/B in GLOB.mob_living_list)
|
||||
if(B != src)
|
||||
return INITIALIZE_HINT_QDEL //There can be only one
|
||||
var/obj/effect/proc_holder/spell/bloodcrawl/bloodspell = new
|
||||
|
||||
@@ -129,7 +129,7 @@ Difficulty: Medium
|
||||
visible_message("<span class='boldannounce'>[src] splits in twain!</span>")
|
||||
else
|
||||
var/last_legion = TRUE
|
||||
for(var/mob/living/simple_animal/hostile/megafauna/legion/other in GLOB.mob_list)
|
||||
for(var/mob/living/simple_animal/hostile/megafauna/legion/other in GLOB.mob_living_list)
|
||||
if(other != src)
|
||||
last_legion = FALSE
|
||||
break
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
#define MEDAL_PREFIX "Tendril"
|
||||
/mob/living/simple_animal/hostile/spawner/lavaland/death()
|
||||
var/last_tendril = TRUE
|
||||
for(var/mob/living/simple_animal/hostile/spawner/lavaland/other in GLOB.mob_list)
|
||||
for(var/mob/living/simple_animal/hostile/spawner/lavaland/other in GLOB.mob_living_list)
|
||||
if(other != src)
|
||||
last_tendril = FALSE
|
||||
break
|
||||
|
||||
@@ -185,7 +185,7 @@
|
||||
range = 10
|
||||
|
||||
/obj/effect/proc_holder/spell/aoe_turf/blindness/cast(list/targets,mob/user = usr)
|
||||
for(var/mob/living/L in GLOB.living_mob_list)
|
||||
for(var/mob/living/L in GLOB.alive_mob_list)
|
||||
var/turf/T = get_turf(L.loc)
|
||||
if(T && T in targets)
|
||||
L.blind_eyes(4)
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
/mob/Destroy()//This makes sure that mobs with clients/keys are not just deleted from the game.
|
||||
GLOB.mob_list -= src
|
||||
GLOB.dead_mob_list -= src
|
||||
GLOB.living_mob_list -= src
|
||||
GLOB.alive_mob_list -= src
|
||||
GLOB.all_clockwork_mobs -= src
|
||||
GLOB.mob_directory -= tag
|
||||
for (var/alert in alerts)
|
||||
@@ -29,7 +29,7 @@
|
||||
if(stat == DEAD)
|
||||
GLOB.dead_mob_list += src
|
||||
else
|
||||
GLOB.living_mob_list += src
|
||||
GLOB.alive_mob_list += src
|
||||
prepare_huds()
|
||||
for(var/v in GLOB.active_alternate_appearances)
|
||||
if(!v)
|
||||
@@ -926,9 +926,9 @@
|
||||
if("stat")
|
||||
if((stat == DEAD) && (var_value < DEAD))//Bringing the dead back to life
|
||||
GLOB.dead_mob_list -= src
|
||||
GLOB.living_mob_list += src
|
||||
GLOB.alive_mob_list += src
|
||||
if((stat < DEAD) && (var_value == DEAD))//Kill he
|
||||
GLOB.living_mob_list -= src
|
||||
GLOB.alive_mob_list -= src
|
||||
GLOB.dead_mob_list += src
|
||||
. = ..()
|
||||
switch(var_name)
|
||||
|
||||
@@ -274,7 +274,8 @@ It's fairly easy to fix if dealing with single letters but not so much with comp
|
||||
/proc/findname(msg)
|
||||
if(!istext(msg))
|
||||
msg = "[msg]"
|
||||
for(var/mob/M in GLOB.mob_list)
|
||||
for(var/i in GLOB.mob_list)
|
||||
var/mob/M = i
|
||||
if(M.real_name == msg)
|
||||
return M
|
||||
return 0
|
||||
|
||||
@@ -369,7 +369,8 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne
|
||||
/obj/machinery/gravity_generator/main/proc/shake_everyone()
|
||||
var/turf/T = get_turf(src)
|
||||
var/sound/alert_sound = sound('sound/effects/alert.ogg')
|
||||
for(var/mob/M in GLOB.mob_list)
|
||||
for(var/i in GLOB.mob_list)
|
||||
var/mob/M = i
|
||||
if(M.z != z)
|
||||
continue
|
||||
M.update_gravity(M.mob_has_gravity())
|
||||
|
||||
@@ -140,7 +140,7 @@
|
||||
acquire(enemy)
|
||||
return
|
||||
|
||||
for(var/mob/living/carbon/food in GLOB.living_mob_list) //we don't care about constructs or cult-Ians or whatever. cult-monkeys are fair game i guess
|
||||
for(var/mob/living/carbon/food in GLOB.alive_mob_list) //we don't care about constructs or cult-Ians or whatever. cult-monkeys are fair game i guess
|
||||
var/turf/pos = get_turf(food)
|
||||
if(!pos || (pos.z != z))
|
||||
continue
|
||||
|
||||
@@ -229,7 +229,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_shard)
|
||||
|
||||
/obj/machinery/power/supermatter_shard/proc/explode()
|
||||
var/turf/T = get_turf(src)
|
||||
for(var/mob/M in GLOB.mob_list)
|
||||
for(var/mob/M in GLOB.player_list)
|
||||
if(M.z == z)
|
||||
SEND_SOUND(M, 'sound/magic/charge.ogg')
|
||||
to_chat(M, "<span class='boldannounce'>You feel reality distort for a moment...</span>")
|
||||
@@ -427,7 +427,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_shard)
|
||||
radio.talk_into(src, "Warning: Critical coolant mass reached.", engineering_channel, get_spans(), get_default_language())
|
||||
|
||||
if(damage > explosion_point)
|
||||
for(var/mob in GLOB.living_mob_list)
|
||||
for(var/mob in GLOB.alive_mob_list)
|
||||
var/mob/living/L = mob
|
||||
if(istype(L) && L.z == z)
|
||||
if(ishuman(mob))
|
||||
@@ -466,7 +466,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_shard)
|
||||
investigate_log("Supermatter shard consumed by singularity.", INVESTIGATE_SINGULO)
|
||||
message_admins("Singularity has consumed a supermatter shard and can now become stage six.")
|
||||
visible_message("<span class='userdanger'>[src] is consumed by the singularity!</span>")
|
||||
for(var/mob/M in GLOB.mob_list)
|
||||
for(var/mob/M in GLOB.player_list)
|
||||
if(M.z == z)
|
||||
SEND_SOUND(M, 'sound/effects/supermatter.ogg') //everyone goan know bout this
|
||||
to_chat(M, "<span class='boldannounce'>A horrible screeching fills your ears, and a wave of dread washes over you...</span>")
|
||||
|
||||
@@ -86,8 +86,8 @@
|
||||
/obj/machinery/r_n_d/experimentor/Initialize()
|
||||
. = ..()
|
||||
|
||||
trackedIan = locate(/mob/living/simple_animal/pet/dog/corgi/Ian) in GLOB.mob_list
|
||||
trackedRuntime = locate(/mob/living/simple_animal/pet/cat/Runtime) in GLOB.mob_list
|
||||
trackedIan = locate(/mob/living/simple_animal/pet/dog/corgi/Ian) in GLOB.mob_living_list
|
||||
trackedRuntime = locate(/mob/living/simple_animal/pet/cat/Runtime) in GLOB.mob_living_list
|
||||
SetTypeReactions()
|
||||
|
||||
/obj/machinery/r_n_d/experimentor/RefreshParts()
|
||||
|
||||
@@ -117,7 +117,7 @@
|
||||
return FALSE
|
||||
|
||||
/obj/docking_port/mobile/arrivals/proc/PersonCheck()
|
||||
for(var/M in (GLOB.living_mob_list & GLOB.player_list))
|
||||
for(var/M in (GLOB.alive_mob_list & GLOB.player_list))
|
||||
var/mob/living/L = M
|
||||
if((get_area(M) in areas) && L.stat != DEAD)
|
||||
return TRUE
|
||||
|
||||
@@ -82,7 +82,7 @@
|
||||
//Hacks
|
||||
var/mob/living/carbon/human/user = usr
|
||||
var/rendered = "<span class='abductor'><b>[user.name]:</b> [message]</span>"
|
||||
for(var/mob/living/carbon/human/H in GLOB.living_mob_list)
|
||||
for(var/mob/living/carbon/human/H in GLOB.alive_mob_list)
|
||||
var/obj/item/organ/tongue/T = H.getorganslot(ORGAN_SLOT_TONGUE)
|
||||
if(!T || T.type != type)
|
||||
continue
|
||||
|
||||
Reference in New Issue
Block a user