mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-22 03:27:05 +01:00
global lists global defined
This commit is contained in:
@@ -4,8 +4,8 @@
|
||||
ghostimage.icon_state = src.icon_state
|
||||
updateghostimages()
|
||||
|
||||
if(non_respawnable_keys[ckey])
|
||||
if(GLOB.non_respawnable_keys[ckey])
|
||||
can_reenter_corpse = 0
|
||||
respawnable_list -= src
|
||||
GLOB.respawnable_list -= src
|
||||
|
||||
update_interface()
|
||||
@@ -65,9 +65,9 @@ var/list/image/ghost_darkness_images = list() //this is a list of images for thi
|
||||
name = body.real_name
|
||||
else
|
||||
if(gender == MALE)
|
||||
name = capitalize(pick(first_names_male)) + " " + capitalize(pick(last_names))
|
||||
name = capitalize(pick(GLOB.first_names_male)) + " " + capitalize(pick(GLOB.last_names))
|
||||
else
|
||||
name = capitalize(pick(first_names_female)) + " " + capitalize(pick(last_names))
|
||||
name = capitalize(pick(GLOB.first_names_female)) + " " + capitalize(pick(GLOB.last_names))
|
||||
|
||||
mind = body.mind //we don't transfer the mind but we keep a reference to it.
|
||||
|
||||
@@ -83,7 +83,7 @@ var/list/image/ghost_darkness_images = list() //this is a list of images for thi
|
||||
forceMove(T)
|
||||
|
||||
if(!name) //To prevent nameless ghosts
|
||||
name = capitalize(pick(first_names_male)) + " " + capitalize(pick(last_names))
|
||||
name = capitalize(pick(GLOB.first_names_male)) + " " + capitalize(pick(GLOB.last_names))
|
||||
real_name = name
|
||||
..()
|
||||
|
||||
@@ -126,15 +126,15 @@ Works together with spawning an observer, noted above.
|
||||
|
||||
/mob/proc/ghostize(var/flags = GHOST_CAN_REENTER)
|
||||
if(key)
|
||||
if(non_respawnable_keys[ckey])
|
||||
if(GLOB.non_respawnable_keys[ckey])
|
||||
flags &= ~GHOST_CAN_REENTER
|
||||
var/mob/dead/observer/ghost = new(src, flags) //Transfer safety to observer spawning proc.
|
||||
ghost.timeofdeath = src.timeofdeath //BS12 EDIT
|
||||
respawnable_list -= src
|
||||
GLOB.respawnable_list -= src
|
||||
if(ghost.can_reenter_corpse)
|
||||
respawnable_list += ghost
|
||||
GLOB.respawnable_list += ghost
|
||||
else
|
||||
non_respawnable_keys[ckey] = 1
|
||||
GLOB.non_respawnable_keys[ckey] = 1
|
||||
ghost.key = key
|
||||
if(!(ghost.client && ghost.client.holder) && !config.antag_hud_allowed) // For new ghosts we remove the verb from even showing up if it's not allowed.
|
||||
ghost.verbs -= /mob/dead/observer/verb/toggle_antagHUD // Poor guys, don't know what they are missing!
|
||||
@@ -160,7 +160,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
warningmsg = "You have committed suicide too early in the round"
|
||||
else if(stat != DEAD)
|
||||
warningmsg = "You are alive"
|
||||
else if(non_respawnable_keys[ckey])
|
||||
else if(GLOB.non_respawnable_keys[ckey])
|
||||
warningmsg = "You have lost your right to respawn"
|
||||
|
||||
if(!warningmsg)
|
||||
@@ -224,7 +224,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
if(client.statpanel == "Status")
|
||||
show_stat_station_time()
|
||||
show_stat_emergency_shuttle_eta()
|
||||
stat(null, "Respawnability: [(src in respawnable_list) ? "Yes" : "No"]")
|
||||
stat(null, "Respawnability: [(src in GLOB.respawnable_list) ? "Yes" : "No"]")
|
||||
|
||||
/mob/dead/observer/verb/reenter_corpse()
|
||||
set category = "Ghost"
|
||||
@@ -319,8 +319,8 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
var/response = alert(src, "If you turn this on, you will not be able to take any part in the round.","Are you sure you want to turn this feature on?","Yes","No")
|
||||
if(response == "No") return
|
||||
M.can_reenter_corpse = 0
|
||||
if(M in respawnable_list)
|
||||
respawnable_list -= M
|
||||
if(M in GLOB.respawnable_list)
|
||||
GLOB.respawnable_list -= M
|
||||
if(!M.has_enabled_antagHUD && !check_rights(R_ADMIN|R_MOD,0))
|
||||
M.has_enabled_antagHUD = 1
|
||||
|
||||
@@ -574,7 +574,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
var/mob/target = locate(href_list["jump"])
|
||||
var/mob/A = usr;
|
||||
to_chat(A, "Teleporting to [target]...")
|
||||
//var/mob/living/silicon/ai/A = locate(href_list["track2"]) in mob_list
|
||||
//var/mob/living/silicon/ai/A = locate(href_list["track2"]) in GLOB.mob_list
|
||||
if(target && target != usr)
|
||||
spawn(0)
|
||||
var/turf/pos = get_turf(A)
|
||||
@@ -625,7 +625,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
updateghostimages()
|
||||
|
||||
/proc/updateallghostimages()
|
||||
for(var/mob/dead/observer/O in player_list)
|
||||
for(var/mob/dead/observer/O in GLOB.player_list)
|
||||
O.updateghostimages()
|
||||
|
||||
/mob/dead/observer/proc/updateghostimages()
|
||||
|
||||
@@ -17,9 +17,9 @@
|
||||
|
||||
// flick("gibbed-m", animation)
|
||||
gibs(loc, dna)
|
||||
dead_mob_list -= src
|
||||
GLOB.dead_mob_list -= src
|
||||
if(client)
|
||||
respawnable_list += src
|
||||
GLOB.respawnable_list += src
|
||||
spawn(15)
|
||||
if(animation) qdel(animation)
|
||||
if(src) qdel(src)
|
||||
@@ -44,9 +44,9 @@
|
||||
// flick("dust-m", animation)
|
||||
new /obj/effect/decal/cleanable/ash(loc)
|
||||
|
||||
dead_mob_list -= src
|
||||
GLOB.dead_mob_list -= src
|
||||
if(client)
|
||||
respawnable_list += src
|
||||
GLOB.respawnable_list += src
|
||||
spawn(15)
|
||||
if(animation) qdel(animation)
|
||||
if(src) qdel(src)
|
||||
@@ -67,9 +67,9 @@
|
||||
// flick("liquify", animation)
|
||||
// new /obj/effect/decal/cleanable/ash(loc)
|
||||
|
||||
dead_mob_list -= src
|
||||
GLOB.dead_mob_list -= src
|
||||
if(client)
|
||||
respawnable_list += src
|
||||
GLOB.respawnable_list += src
|
||||
spawn(15)
|
||||
if(animation) qdel(animation)
|
||||
if(src) qdel(src)
|
||||
@@ -87,8 +87,8 @@
|
||||
|
||||
timeofdeath = world.time
|
||||
|
||||
living_mob_list -= src
|
||||
dead_mob_list += src
|
||||
GLOB.living_mob_list -= src
|
||||
GLOB.dead_mob_list += src
|
||||
if(client)
|
||||
respawnable_list += src
|
||||
GLOB.respawnable_list += src
|
||||
return ..(gibbed)
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
//Hearing gasp and such every five seconds is not good emotes were not global for a reason.
|
||||
// Maybe some people are okay with that.
|
||||
|
||||
for(var/mob/M in player_list)
|
||||
for(var/mob/M in GLOB.player_list)
|
||||
if(!M.client)
|
||||
continue //skip monkeys and leavers
|
||||
if(istype(M, /mob/new_player))
|
||||
@@ -126,7 +126,7 @@
|
||||
|
||||
|
||||
if(message)
|
||||
for(var/mob/M in player_list)
|
||||
for(var/mob/M in GLOB.player_list)
|
||||
if(istype(M, /mob/new_player))
|
||||
continue
|
||||
|
||||
|
||||
@@ -25,9 +25,9 @@
|
||||
/datum/language/proc/get_random_name(gender, name_count=2, syllable_count=4)
|
||||
if(!syllables || !syllables.len || english_names)
|
||||
if(gender==FEMALE)
|
||||
return capitalize(pick(first_names_female)) + " " + capitalize(pick(last_names))
|
||||
return capitalize(pick(GLOB.first_names_female)) + " " + capitalize(pick(GLOB.last_names))
|
||||
else
|
||||
return capitalize(pick(first_names_male)) + " " + capitalize(pick(last_names))
|
||||
return capitalize(pick(GLOB.first_names_male)) + " " + capitalize(pick(GLOB.last_names))
|
||||
|
||||
var/full_name = ""
|
||||
var/new_name = ""
|
||||
@@ -105,7 +105,7 @@
|
||||
speaker_mask = speaker.name
|
||||
var/msg = "<i><span class='game say'>[name], <span class='name'>[speaker_mask]</span> [format_message(message, get_spoken_verb(message))]</span></i>"
|
||||
|
||||
for(var/mob/player in player_list)
|
||||
for(var/mob/player in GLOB.player_list)
|
||||
if(istype(player,/mob/dead) && follow)
|
||||
var/msg_dead = "<i><span class='game say'>[name], <span class='name'>[speaker_mask]</span> ([ghost_follow_link(speaker, ghost=player)]) [format_message(message, get_spoken_verb(message))]</span></i>"
|
||||
to_chat(player, msg_dead)
|
||||
@@ -232,7 +232,7 @@
|
||||
|
||||
while(i <= sounds)
|
||||
i++
|
||||
newname += pick(vox_name_syllables)
|
||||
newname += pick(GLOB.vox_name_syllables)
|
||||
return capitalize(newname)
|
||||
|
||||
/datum/language/diona
|
||||
@@ -267,7 +267,7 @@
|
||||
if(prob(70))
|
||||
new_name = "[pick(list("PBU","HIU","SINA","ARMA","OSI"))]-[rand(100, 999)]"
|
||||
else
|
||||
new_name = pick(ai_names)
|
||||
new_name = pick(GLOB.ai_names)
|
||||
return new_name
|
||||
|
||||
/datum/language/kidan
|
||||
@@ -567,12 +567,12 @@
|
||||
var/message_start = "<i><span class='game say'>[name], <span class='name'>[speaker.name]</span>"
|
||||
var/message_body = "<span class='message'>[speaker.say_quote(message)],</i><span class='robot'>\"[message]\"</span></span></span>"
|
||||
|
||||
for(var/mob/M in dead_mob_list)
|
||||
for(var/mob/M in GLOB.dead_mob_list)
|
||||
if(!isnewplayer(M) && !isbrain(M))
|
||||
var/message_start_dead = "<i><span class='game say'>[name], <span class='name'>[speaker.name] ([ghost_follow_link(speaker, ghost=M)])</span>"
|
||||
M.show_message("[message_start_dead] [message_body]", 2)
|
||||
|
||||
for(var/mob/living/S in living_mob_list)
|
||||
for(var/mob/living/S in GLOB.living_mob_list)
|
||||
if(drone_only && !istype(S,/mob/living/silicon/robot/drone))
|
||||
continue
|
||||
else if(isAI(S))
|
||||
@@ -627,7 +627,7 @@
|
||||
// Language handling.
|
||||
/mob/proc/add_language(language)
|
||||
|
||||
var/datum/language/new_language = all_languages[language]
|
||||
var/datum/language/new_language = GLOB.all_languages[language]
|
||||
|
||||
if(!istype(new_language) || new_language in languages)
|
||||
return FALSE
|
||||
@@ -636,12 +636,12 @@
|
||||
return TRUE
|
||||
|
||||
/mob/proc/remove_language(rem_language)
|
||||
var/datum/language/L = all_languages[rem_language]
|
||||
var/datum/language/L = GLOB.all_languages[rem_language]
|
||||
. = (L in languages)
|
||||
languages.Remove(L)
|
||||
|
||||
/mob/living/remove_language(rem_language)
|
||||
var/datum/language/L = all_languages[rem_language]
|
||||
var/datum/language/L = GLOB.all_languages[rem_language]
|
||||
if(default_language == L)
|
||||
default_language = null
|
||||
return ..()
|
||||
@@ -686,7 +686,7 @@
|
||||
if(href_list["default_lang"] == "reset")
|
||||
set_default_language(null)
|
||||
else
|
||||
var/datum/language/L = all_languages[href_list["default_lang"]]
|
||||
var/datum/language/L = GLOB.all_languages[href_list["default_lang"]]
|
||||
if(L)
|
||||
set_default_language(L)
|
||||
check_languages()
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
/mob/living/carbon/alien/get_default_language()
|
||||
if(default_language)
|
||||
return default_language
|
||||
return all_languages["Xenomorph"]
|
||||
return GLOB.all_languages["Xenomorph"]
|
||||
|
||||
/mob/living/carbon/alien/say_quote(var/message, var/datum/language/speaking = null)
|
||||
var/verb = "hisses"
|
||||
@@ -192,7 +192,7 @@ 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 mob_list)
|
||||
for(var/mob/living/C in GLOB.mob_list)
|
||||
if(C.status_flags & XENO_HOST)
|
||||
var/obj/item/organ/internal/body_egg/alien_embryo/A = C.get_int_organ(/obj/item/organ/internal/body_egg/alien_embryo)
|
||||
if(A)
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
|
||||
flick("gibbed-a", animation)
|
||||
xgibs(loc)
|
||||
dead_mob_list -= src
|
||||
GLOB.dead_mob_list -= src
|
||||
|
||||
spawn(15)
|
||||
if(animation) qdel(animation)
|
||||
@@ -36,7 +36,7 @@
|
||||
|
||||
flick("dust-a", animation)
|
||||
new /obj/effect/decal/remains/xeno(loc)
|
||||
dead_mob_list -= src
|
||||
GLOB.dead_mob_list -= src
|
||||
|
||||
spawn(15)
|
||||
if(animation) qdel(animation)
|
||||
|
||||
@@ -46,7 +46,7 @@ Doesn't work on other aliens/AI.*/
|
||||
log_say("(AWHISPER to [key_name(M)]) [msg]", src)
|
||||
to_chat(M, "<span class='noticealien'>You hear a strange, alien voice in your head...<span class='noticealien'>[msg]")
|
||||
to_chat(src, "<span class='noticealien'>You said: [msg] to [M]</span>")
|
||||
for(var/mob/dead/observer/G in player_list)
|
||||
for(var/mob/dead/observer/G in GLOB.player_list)
|
||||
G.show_message("<i>Alien message from <b>[src]</b> ([ghost_follow_link(src, ghost=G)]) to <b>[M]</b> ([ghost_follow_link(M, ghost=G)]): [msg]</i>")
|
||||
return
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
if(powerc(500))
|
||||
// Queen check
|
||||
var/no_queen = 1
|
||||
for(var/mob/living/carbon/alien/humanoid/queen/Q in living_mob_list)
|
||||
for(var/mob/living/carbon/alien/humanoid/queen/Q in GLOB.living_mob_list)
|
||||
if(!Q.key && Q.get_int_organ(/obj/item/organ/internal/brain/))
|
||||
continue
|
||||
no_queen = 0
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
create_reagents(100)
|
||||
|
||||
//there should only be one queen
|
||||
for(var/mob/living/carbon/alien/humanoid/empress/E in living_mob_list)
|
||||
for(var/mob/living/carbon/alien/humanoid/empress/E in GLOB.living_mob_list)
|
||||
if(E == src) continue
|
||||
if(E.stat == DEAD) continue
|
||||
if(E.client)
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
create_reagents(100)
|
||||
|
||||
//there should only be one queen
|
||||
for(var/mob/living/carbon/alien/humanoid/queen/Q in living_mob_list)
|
||||
for(var/mob/living/carbon/alien/humanoid/queen/Q in GLOB.living_mob_list)
|
||||
if(Q == src) continue
|
||||
if(Q.stat == DEAD) continue
|
||||
if(Q.client)
|
||||
|
||||
@@ -10,6 +10,6 @@
|
||||
|
||||
timeofdeath = world.time
|
||||
if(mind) mind.store_memory("Time of death: [station_time_timestamp("hh:mm:ss", timeofdeath)]", 0)
|
||||
living_mob_list -= src
|
||||
GLOB.living_mob_list -= src
|
||||
|
||||
return ..(gibbed)
|
||||
|
||||
@@ -112,7 +112,7 @@ Proc: AddInfectionImages(C)
|
||||
Des: Adds the infection image to all aliens for this embryo
|
||||
----------------------------------------*/
|
||||
/obj/item/organ/internal/body_egg/alien_embryo/AddInfectionImages()
|
||||
for(var/mob/living/carbon/alien/alien in player_list)
|
||||
for(var/mob/living/carbon/alien/alien in GLOB.player_list)
|
||||
if(alien.client)
|
||||
var/I = image('icons/mob/alien.dmi', loc = owner, icon_state = "infected[stage]")
|
||||
alien.client.images += I
|
||||
@@ -122,7 +122,7 @@ Proc: RemoveInfectionImage(C)
|
||||
Des: Removes all images from the mob infected by this embryo
|
||||
----------------------------------------*/
|
||||
/obj/item/organ/internal/body_egg/alien_embryo/RemoveInfectionImages()
|
||||
for(var/mob/living/carbon/alien/alien in player_list)
|
||||
for(var/mob/living/carbon/alien/alien in GLOB.player_list)
|
||||
if(alien.client)
|
||||
for(var/image/I in alien.client.images)
|
||||
if(dd_hasprefix_case(I.icon_state, "infected") && I.loc == owner)
|
||||
|
||||
@@ -40,9 +40,9 @@
|
||||
brainmob.loc = src
|
||||
brainmob.container = src
|
||||
brainmob.stat = CONSCIOUS
|
||||
respawnable_list -= brainmob
|
||||
dead_mob_list -= brainmob//Update dem lists
|
||||
living_mob_list += brainmob
|
||||
GLOB.respawnable_list -= brainmob
|
||||
GLOB.dead_mob_list -= brainmob//Update dem lists
|
||||
GLOB.living_mob_list += brainmob
|
||||
|
||||
held_brain = B
|
||||
if(istype(O,/obj/item/organ/internal/brain/xeno)) // kept the type check, as it still does other weird stuff
|
||||
@@ -146,8 +146,8 @@
|
||||
|
||||
brainmob.container = null//Reset brainmob mmi var.
|
||||
brainmob.loc = held_brain//Throw mob into brain.
|
||||
respawnable_list += brainmob
|
||||
living_mob_list -= brainmob//Get outta here
|
||||
GLOB.respawnable_list += brainmob
|
||||
GLOB.living_mob_list -= brainmob//Get outta here
|
||||
held_brain.brainmob = brainmob//Set the brain to use the brainmob
|
||||
held_brain.brainmob.cancel_camera()
|
||||
brainmob = null//Set mmi brainmob var to null
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
// flick("gibbed-m", animation)
|
||||
gibs(loc, dna)
|
||||
|
||||
dead_mob_list -= src
|
||||
GLOB.dead_mob_list -= src
|
||||
if(container && istype(container, /obj/item/mmi))
|
||||
qdel(container)//Gets rid of the MMI if there is one
|
||||
if(loc)
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
to_chat(brainmob, "<span class='warning'>Your internal speaker has been toggled [silenced ? "off" : "on"].</span>")
|
||||
|
||||
/obj/item/mmi/robotic_brain/proc/request_player()
|
||||
for(var/mob/dead/observer/O in player_list)
|
||||
for(var/mob/dead/observer/O in GLOB.player_list)
|
||||
if(check_observer(O))
|
||||
to_chat(O, "<span class='boldnotice'>\A [src] has been activated. (<a href='?src=[O.UID()];jump=\ref[src]'>Teleport</a> | <a href='?src=[UID()];signup=\ref[O]'>Sign Up</a>)</span>")
|
||||
|
||||
@@ -204,7 +204,7 @@
|
||||
brainmob.container = src
|
||||
brainmob.stat = CONSCIOUS
|
||||
brainmob.SetSilence(0)
|
||||
dead_mob_list -= brainmob
|
||||
GLOB.dead_mob_list -= brainmob
|
||||
..()
|
||||
|
||||
/obj/item/mmi/robotic_brain/attack_ghost(mob/dead/observer/O)
|
||||
|
||||
@@ -10,11 +10,11 @@
|
||||
|
||||
gender = new_gender
|
||||
|
||||
var/datum/sprite_accessory/hair/current_hair = hair_styles_full_list[H.h_style]
|
||||
var/datum/sprite_accessory/hair/current_hair = GLOB.hair_styles_full_list[H.h_style]
|
||||
if(current_hair.gender != NEUTER && current_hair.gender != gender)
|
||||
reset_head_hair()
|
||||
|
||||
var/datum/sprite_accessory/hair/current_fhair = facial_hair_styles_list[H.f_style]
|
||||
var/datum/sprite_accessory/hair/current_fhair = GLOB.facial_hair_styles_list[H.f_style]
|
||||
if(current_fhair.gender != NEUTER && current_fhair.gender != gender)
|
||||
reset_facial_hair()
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
|
||||
if(!hair_style || !H || H.h_style == hair_style)
|
||||
return
|
||||
if(!(fluff || (hair_style in hair_styles_public_list)))
|
||||
if(!(fluff || (hair_style in GLOB.hair_styles_public_list)))
|
||||
return
|
||||
|
||||
H.h_style = hair_style
|
||||
@@ -40,7 +40,7 @@
|
||||
|
||||
/mob/living/carbon/human/proc/change_facial_hair(var/facial_hair_style)
|
||||
var/obj/item/organ/external/head/H = get_organ("head")
|
||||
if(!facial_hair_style || !H || H.f_style == facial_hair_style || !(facial_hair_style in facial_hair_styles_list))
|
||||
if(!facial_hair_style || !H || H.f_style == facial_hair_style || !(facial_hair_style in GLOB.facial_hair_styles_list))
|
||||
return
|
||||
|
||||
H.f_style = facial_hair_style
|
||||
@@ -50,7 +50,7 @@
|
||||
|
||||
/mob/living/carbon/human/proc/change_head_accessory(var/head_accessory_style)
|
||||
var/obj/item/organ/external/head/H = get_organ("head")
|
||||
if(!head_accessory_style || !H || H.ha_style == head_accessory_style || !(head_accessory_style in head_accessory_styles_list))
|
||||
if(!head_accessory_style || !H || H.ha_style == head_accessory_style || !(head_accessory_style in GLOB.head_accessory_styles_list))
|
||||
return
|
||||
|
||||
H.ha_style = head_accessory_style
|
||||
@@ -59,10 +59,10 @@
|
||||
return 1
|
||||
|
||||
/mob/living/carbon/human/proc/change_markings(var/marking_style, var/location = "body")
|
||||
if(!marking_style || m_styles[location] == marking_style || !(marking_style in marking_styles_list))
|
||||
if(!marking_style || m_styles[location] == marking_style || !(marking_style in GLOB.marking_styles_list))
|
||||
return
|
||||
|
||||
var/datum/sprite_accessory/body_markings/marking = marking_styles_list[marking_style]
|
||||
var/datum/sprite_accessory/body_markings/marking = GLOB.marking_styles_list[marking_style]
|
||||
if(marking.name != "None" && marking.marking_location != location)
|
||||
return
|
||||
|
||||
@@ -72,18 +72,18 @@
|
||||
return
|
||||
|
||||
if(head_organ.alt_head && head_organ.alt_head != "None")
|
||||
var/datum/sprite_accessory/body_markings/head/H = marking_styles_list[marking_style]
|
||||
var/datum/sprite_accessory/body_markings/head/H = GLOB.marking_styles_list[marking_style]
|
||||
if(marking.name != "None" && (!H.heads_allowed || (!("All" in H.heads_allowed) && !(head_organ.alt_head in H.heads_allowed))))
|
||||
return
|
||||
else
|
||||
if(!head_organ.alt_head || head_organ.alt_head == "None")
|
||||
head_organ.alt_head = "None"
|
||||
var/datum/sprite_accessory/body_markings/head/H = marking_styles_list[marking_style]
|
||||
var/datum/sprite_accessory/body_markings/head/H = GLOB.marking_styles_list[marking_style]
|
||||
if(H.heads_allowed && !("All" in H.heads_allowed))
|
||||
return
|
||||
|
||||
if(location == "tail" && marking.name != "None")
|
||||
var/datum/sprite_accessory/body_markings/tail/tail_marking = marking_styles_list[marking_style]
|
||||
var/datum/sprite_accessory/body_markings/tail/tail_marking = GLOB.marking_styles_list[marking_style]
|
||||
if(!body_accessory)
|
||||
if(tail_marking.tails_allowed)
|
||||
return
|
||||
@@ -118,7 +118,7 @@
|
||||
|
||||
/mob/living/carbon/human/proc/change_alt_head(var/alternate_head)
|
||||
var/obj/item/organ/external/head/H = get_organ("head")
|
||||
if(!H || H.alt_head == alternate_head || H.is_robotic() || (!(dna.species.bodyflags & HAS_ALT_HEADS) && alternate_head != "None") || !(alternate_head in alt_heads_list))
|
||||
if(!H || H.alt_head == alternate_head || H.is_robotic() || (!(dna.species.bodyflags & HAS_ALT_HEADS) && alternate_head != "None") || !(alternate_head in GLOB.alt_heads_list))
|
||||
return
|
||||
|
||||
H.alt_head = alternate_head
|
||||
@@ -126,7 +126,7 @@
|
||||
//Handle head markings if they're incompatible with the new alt head.
|
||||
if(m_styles["head"])
|
||||
var/head_marking = m_styles["head"]
|
||||
var/datum/sprite_accessory/body_markings/head/head_marking_style = marking_styles_list[head_marking]
|
||||
var/datum/sprite_accessory/body_markings/head/head_marking_style = GLOB.marking_styles_list[head_marking]
|
||||
if(!head_marking_style.heads_allowed || (!("All" in head_marking_style.heads_allowed) && !(H.alt_head in head_marking_style.heads_allowed)))
|
||||
m_styles["head"] = "None"
|
||||
update_markings()
|
||||
@@ -331,8 +331,8 @@
|
||||
if(!H)
|
||||
return //No head, no hair.
|
||||
|
||||
for(var/hairstyle in hair_styles_public_list)
|
||||
var/datum/sprite_accessory/S = hair_styles_public_list[hairstyle]
|
||||
for(var/hairstyle in GLOB.hair_styles_public_list)
|
||||
var/datum/sprite_accessory/S = GLOB.hair_styles_public_list[hairstyle]
|
||||
|
||||
if(hairstyle == "Bald") //Just in case.
|
||||
valid_hairstyles += hairstyle
|
||||
@@ -359,8 +359,8 @@
|
||||
if(!H)
|
||||
return //No head, no hair.
|
||||
|
||||
for(var/facialhairstyle in facial_hair_styles_list)
|
||||
var/datum/sprite_accessory/S = facial_hair_styles_list[facialhairstyle]
|
||||
for(var/facialhairstyle in GLOB.facial_hair_styles_list)
|
||||
var/datum/sprite_accessory/S = GLOB.facial_hair_styles_list[facialhairstyle]
|
||||
|
||||
if(facialhairstyle == "Shaved") //Just in case.
|
||||
valid_facial_hairstyles += facialhairstyle
|
||||
@@ -388,8 +388,8 @@
|
||||
if(!H)
|
||||
return //No head, no head accessory.
|
||||
|
||||
for(var/head_accessory in head_accessory_styles_list)
|
||||
var/datum/sprite_accessory/S = head_accessory_styles_list[head_accessory]
|
||||
for(var/head_accessory in GLOB.head_accessory_styles_list)
|
||||
var/datum/sprite_accessory/S = GLOB.head_accessory_styles_list[head_accessory]
|
||||
|
||||
if(!(H.dna.species.name in S.species_allowed)) //If the user's head is not of a species the head accessory style allows, skip it. Otherwise, add it to the list.
|
||||
continue
|
||||
@@ -403,8 +403,8 @@
|
||||
if(!H && location == "head")
|
||||
return //No head, no head markings.
|
||||
|
||||
for(var/marking in marking_styles_list)
|
||||
var/datum/sprite_accessory/body_markings/S = marking_styles_list[marking]
|
||||
for(var/marking in GLOB.marking_styles_list)
|
||||
var/datum/sprite_accessory/body_markings/S = GLOB.marking_styles_list[marking]
|
||||
if(S.name == "None")
|
||||
valid_markings += marking
|
||||
continue
|
||||
@@ -420,7 +420,7 @@
|
||||
if(!S.tails_allowed || !(body_accessory.name in S.tails_allowed))
|
||||
continue
|
||||
if(location == "head")
|
||||
var/datum/sprite_accessory/body_markings/head/M = marking_styles_list[S.name]
|
||||
var/datum/sprite_accessory/body_markings/head/M = GLOB.marking_styles_list[S.name]
|
||||
if(H.dna.species.bodyflags & ALL_RPARTS) //If the user is a species that can have a robotic head...
|
||||
var/datum/robolimb/robohead = all_robolimbs[H.model]
|
||||
if(!(S.models_allowed && (robohead.company in S.models_allowed))) //Make sure they don't get markings incompatible with their head.
|
||||
@@ -455,9 +455,9 @@
|
||||
var/obj/item/organ/external/head/H = get_organ("head")
|
||||
if(!H)
|
||||
return //No head, no alt heads.
|
||||
valid_alt_heads["None"] = alt_heads_list["None"] //The only null entry should be the "None" option, and there should always be a "None" option.
|
||||
for(var/alternate_head in alt_heads_list)
|
||||
var/datum/sprite_accessory/alt_heads/head = alt_heads_list[alternate_head]
|
||||
valid_alt_heads["None"] = GLOB.alt_heads_list["None"] //The only null entry should be the "None" option, and there should always be a "None" option.
|
||||
for(var/alternate_head in GLOB.alt_heads_list)
|
||||
var/datum/sprite_accessory/alt_heads/head = GLOB.alt_heads_list[alternate_head]
|
||||
if(!(H.dna.species.name in head.species_allowed))
|
||||
continue
|
||||
|
||||
|
||||
@@ -841,7 +841,7 @@
|
||||
to_chat(viewers(src), "<span class='danger'>[src] farts on the Bible!</span>")
|
||||
var/image/cross = image('icons/obj/storage.dmi', "bible")
|
||||
var/adminbfmessage = "[bicon(cross)] <span class='danger'>Bible Fart:</span> [key_name(src, 1)] (<A HREF='?_src_=holder;adminmoreinfo=[UID()]'>?</A>) (<A HREF='?_src_=holder;adminplayeropts=[UID()]'>PP</A>) (<A HREF='?_src_=vars;Vars=[UID()]'>VV</A>) (<A HREF='?_src_=holder;subtlemessage=[UID()]'>SM</A>) ([admin_jump_link(src)]) (<A HREF='?_src_=holder;secretsadmin=check_antagonist'>CA</A>) (<A HREF='?_src_=holder;Smite=[UID()]'>SMITE</A>):</b>"
|
||||
for(var/client/X in admins)
|
||||
for(var/client/X in GLOB.admins)
|
||||
if(check_rights(R_EVENT, 0, X.mob))
|
||||
to_chat(X, adminbfmessage)
|
||||
else if(TOXIC_FARTS in mutations)
|
||||
@@ -941,7 +941,7 @@
|
||||
//Hearing gasp and such every five seconds is not good emotes were not global for a reason.
|
||||
// Maybe some people are okay with that.
|
||||
|
||||
for(var/mob/M in dead_mob_list)
|
||||
for(var/mob/M in GLOB.dead_mob_list)
|
||||
if(!M.client || istype(M, /mob/new_player))
|
||||
continue //skip monkeys, leavers and new players
|
||||
if(M.stat == DEAD && M.get_preference(CHAT_GHOSTSIGHT) && !(M in viewers(src,null)))
|
||||
|
||||
@@ -180,7 +180,7 @@
|
||||
if(!key)
|
||||
var/foundghost = FALSE
|
||||
if(mind)
|
||||
for(var/mob/dead/observer/G in player_list)
|
||||
for(var/mob/dead/observer/G in GLOB.player_list)
|
||||
if(G.mind == mind)
|
||||
foundghost = TRUE
|
||||
if(G.can_reenter_corpse == 0)
|
||||
|
||||
@@ -1395,7 +1395,7 @@
|
||||
|
||||
if(!dna.species)
|
||||
return null
|
||||
return dna.species.default_language ? all_languages[dna.species.default_language] : null
|
||||
return dna.species.default_language ? GLOB.all_languages[dna.species.default_language] : null
|
||||
|
||||
/mob/living/carbon/human/proc/bloody_doodle()
|
||||
set category = "IC"
|
||||
@@ -1463,7 +1463,7 @@
|
||||
|
||||
/mob/living/carbon/human/proc/get_eye_shine() //Referenced cult constructs for shining in the dark. Needs to be above lighting effects such as shading.
|
||||
var/obj/item/organ/external/head/head_organ = get_organ("head")
|
||||
var/datum/sprite_accessory/hair/hair_style = hair_styles_full_list[head_organ.h_style]
|
||||
var/datum/sprite_accessory/hair/hair_style = GLOB.hair_styles_full_list[head_organ.h_style]
|
||||
var/icon/hair = new /icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_s")
|
||||
|
||||
return image(get_icon_difference(get_eyecon(), hair), layer = LIGHTING_LAYER + 1) //Cut the hair's pixels from the eyes icon so eyes covered by bangs stay hidden even while on a higher layer.
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
if(B)
|
||||
if((health >= (config.health_threshold_dead + config.health_threshold_crit) * 0.5) && stat == DEAD && getBrainLoss()<120)
|
||||
update_revive()
|
||||
if(stat == CONSCIOUS && (src in dead_mob_list)) //Defib fix
|
||||
if(stat == CONSCIOUS && (src in GLOB.dead_mob_list)) //Defib fix
|
||||
update_revive()
|
||||
med_hud_set_health()
|
||||
med_hud_set_status()
|
||||
|
||||
@@ -288,7 +288,7 @@ emp_act
|
||||
|
||||
|
||||
if(Iforce > 10 || Iforce >= 5 && prob(33))
|
||||
forcesay(hit_appends) //forcesay checks stat already
|
||||
forcesay(GLOB.hit_appends) //forcesay checks stat already
|
||||
|
||||
//this proc handles being hit by a thrown atom
|
||||
/mob/living/carbon/human/hitby(atom/movable/AM, skipcatch = 0, hitpush = 1, blocked = 0)
|
||||
|
||||
@@ -199,7 +199,7 @@
|
||||
var/shouldDoppel = input("Do you want the SNPC to disguise themself as a crewmember?") as anything in list("Yes", "No")
|
||||
if(shouldDoppel == "Yes")
|
||||
var/list/validchoices = list()
|
||||
for(var/mob/living/carbon/human/M in mob_list)
|
||||
for(var/mob/living/carbon/human/M in GLOB.mob_list)
|
||||
validchoices += M
|
||||
|
||||
var/mob/living/carbon/human/chosen = input("Which crewmember?") as null|anything in validchoices
|
||||
@@ -412,7 +412,7 @@
|
||||
|
||||
/mob/living/carbon/human/interactive/LateInitialize()
|
||||
. = ..()
|
||||
snpc_list += src
|
||||
GLOB.snpc_list += src
|
||||
|
||||
create_mob_hud()
|
||||
|
||||
@@ -421,7 +421,7 @@
|
||||
doSetup()
|
||||
npc_master.insertBot(src)
|
||||
loadVoice()
|
||||
hear_radio_list += src
|
||||
GLOB.hear_radio_list += src
|
||||
|
||||
// a little bit of variation to make individuals more unique
|
||||
robustness += rand(-10, 10)
|
||||
@@ -432,8 +432,8 @@
|
||||
doProcess()
|
||||
|
||||
/mob/living/carbon/human/interactive/Destroy()
|
||||
hear_radio_list -= src
|
||||
snpc_list -= src
|
||||
GLOB.hear_radio_list -= src
|
||||
GLOB.snpc_list -= src
|
||||
npc_master.removeBot(src)
|
||||
return ..()
|
||||
|
||||
|
||||
@@ -161,7 +161,7 @@
|
||||
unarmed = new unarmed_type()
|
||||
|
||||
/datum/species/proc/get_random_name(gender)
|
||||
var/datum/language/species_language = all_languages[language]
|
||||
var/datum/language/species_language = GLOB.all_languages[language]
|
||||
return species_language.get_random_name(gender)
|
||||
|
||||
/datum/species/proc/create_organs(mob/living/carbon/human/H) //Handles creation of mob organs.
|
||||
@@ -361,9 +361,9 @@
|
||||
target.visible_message("<span class='danger'>[user] has weakened [target]!</span>", \
|
||||
"<span class='userdanger'>[user] has weakened [target]!</span>")
|
||||
target.apply_effect(4, WEAKEN, armor_block)
|
||||
target.forcesay(hit_appends)
|
||||
target.forcesay(GLOB.hit_appends)
|
||||
else if(target.lying)
|
||||
target.forcesay(hit_appends)
|
||||
target.forcesay(GLOB.hit_appends)
|
||||
|
||||
/datum/species/proc/disarm(mob/living/carbon/human/user, mob/living/carbon/human/target, datum/martial_art/attacker_style)
|
||||
if(attacker_style && attacker_style.disarm_act(user, target))
|
||||
|
||||
@@ -122,8 +122,8 @@
|
||||
|
||||
else if(robohead.is_monitor) //Means that the character's head is a monitor (has a screen). Time to customize.
|
||||
var/list/hair = list()
|
||||
for(var/i in hair_styles_public_list)
|
||||
var/datum/sprite_accessory/hair/tmp_hair = hair_styles_public_list[i]
|
||||
for(var/i in GLOB.hair_styles_public_list)
|
||||
var/datum/sprite_accessory/hair/tmp_hair = GLOB.hair_styles_public_list[i]
|
||||
if((head_organ.dna.species.name in tmp_hair.species_allowed) && (robohead.company in tmp_hair.models_allowed)) //Populate the list of available monitor styles only with styles that the monitor-head is allowed to use.
|
||||
hair += i
|
||||
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
|
||||
|
||||
/datum/species/wryn/handle_death(mob/living/carbon/human/H)
|
||||
for(var/mob/living/carbon/C in living_mob_list)
|
||||
for(var/mob/living/carbon/C in GLOB.living_mob_list)
|
||||
if(C.get_int_organ(/obj/item/organ/internal/wryn/hivenode))
|
||||
to_chat(C, "<span class='danger'><B>Your antennae tingle as you are overcome with pain...</B></span>")
|
||||
to_chat(C, "<span class='danger'>It feels like part of you has died.</span>") // This is bullshit
|
||||
|
||||
@@ -318,18 +318,18 @@ var/global/list/damage_icon_parts = list()
|
||||
var/icon/underwear_standing = new/icon('icons/mob/underwear.dmi',"nude")
|
||||
|
||||
if(underwear && dna.species.clothing_flags & HAS_UNDERWEAR)
|
||||
var/datum/sprite_accessory/underwear/U = underwear_list[underwear]
|
||||
var/datum/sprite_accessory/underwear/U = GLOB.underwear_list[underwear]
|
||||
if(U)
|
||||
underwear_standing.Blend(new /icon(U.icon, "uw_[U.icon_state]_s"), ICON_OVERLAY)
|
||||
|
||||
if(undershirt && dna.species.clothing_flags & HAS_UNDERSHIRT)
|
||||
var/datum/sprite_accessory/undershirt/U2 = undershirt_list[undershirt]
|
||||
var/datum/sprite_accessory/undershirt/U2 = GLOB.undershirt_list[undershirt]
|
||||
if(U2)
|
||||
underwear_standing.Blend(new /icon(U2.icon, "us_[U2.icon_state]_s"), ICON_OVERLAY)
|
||||
|
||||
|
||||
if(socks && dna.species.clothing_flags & HAS_SOCKS)
|
||||
var/datum/sprite_accessory/socks/U3 = socks_list[socks]
|
||||
var/datum/sprite_accessory/socks/U3 = GLOB.socks_list[socks]
|
||||
if(U3)
|
||||
underwear_standing.Blend(new /icon(U3.icon, "sk_[U3.icon_state]_s"), ICON_OVERLAY)
|
||||
|
||||
@@ -369,7 +369,7 @@ var/global/list/damage_icon_parts = list()
|
||||
var/obj/item/organ/external/chest/chest_organ = get_organ("chest")
|
||||
if(chest_organ && m_styles["body"])
|
||||
var/body_marking = m_styles["body"]
|
||||
var/datum/sprite_accessory/body_marking_style = marking_styles_list[body_marking]
|
||||
var/datum/sprite_accessory/body_marking_style = GLOB.marking_styles_list[body_marking]
|
||||
if(body_marking_style && body_marking_style.species_allowed && (dna.species.name in body_marking_style.species_allowed))
|
||||
var/icon/b_marking_s = new/icon("icon" = body_marking_style.icon, "icon_state" = "[body_marking_style.icon_state]_s")
|
||||
if(body_marking_style.do_colouration)
|
||||
@@ -379,7 +379,7 @@ var/global/list/damage_icon_parts = list()
|
||||
var/obj/item/organ/external/head/head_organ = get_organ("head")
|
||||
if(head_organ && m_styles["head"]) //If the head is destroyed, forget the head markings. This prevents floating optical markings on decapitated IPCs, for example.
|
||||
var/head_marking = m_styles["head"]
|
||||
var/datum/sprite_accessory/head_marking_style = marking_styles_list[head_marking]
|
||||
var/datum/sprite_accessory/head_marking_style = GLOB.marking_styles_list[head_marking]
|
||||
if(head_marking_style && head_marking_style.species_allowed && (head_organ.dna.species.name in head_marking_style.species_allowed))
|
||||
var/icon/h_marking_s = new/icon("icon" = head_marking_style.icon, "icon_state" = "[head_marking_style.icon_state]_s")
|
||||
if(head_marking_style.do_colouration)
|
||||
@@ -409,7 +409,7 @@ var/global/list/damage_icon_parts = list()
|
||||
//base icons
|
||||
var/icon/head_accessory_standing = new /icon('icons/mob/body_accessory.dmi',"accessory_none_s")
|
||||
if(head_organ.ha_style && (head_organ.dna.species.bodyflags & HAS_HEAD_ACCESSORY))
|
||||
var/datum/sprite_accessory/head_accessory/head_accessory_style = head_accessory_styles_list[head_organ.ha_style]
|
||||
var/datum/sprite_accessory/head_accessory/head_accessory_style = GLOB.head_accessory_styles_list[head_organ.ha_style]
|
||||
if(head_accessory_style && head_accessory_style.species_allowed)
|
||||
if(head_organ.dna.species.name in head_accessory_style.species_allowed)
|
||||
var/icon/head_accessory_s = new/icon("icon" = head_accessory_style.icon, "icon_state" = "[head_accessory_style.icon_state]_s")
|
||||
@@ -448,7 +448,7 @@ var/global/list/damage_icon_parts = list()
|
||||
//var/icon/debrained_s = new /icon("icon"='icons/mob/human_face.dmi', "icon_state" = "debrained_s")
|
||||
|
||||
if(head_organ.h_style && !(head && (head.flags & BLOCKHEADHAIR) && !(isSynthetic())))
|
||||
var/datum/sprite_accessory/hair/hair_style = hair_styles_full_list[head_organ.h_style]
|
||||
var/datum/sprite_accessory/hair/hair_style = GLOB.hair_styles_full_list[head_organ.h_style]
|
||||
//if(!src.get_int_organ(/obj/item/organ/internal/brain) && !ismachine(src))//make it obvious we have NO BRAIN
|
||||
// hair_standing.Blend(debrained_s, ICON_OVERLAY)
|
||||
if(hair_style && hair_style.species_allowed)
|
||||
@@ -496,7 +496,7 @@ var/global/list/damage_icon_parts = list()
|
||||
var/icon/face_standing = new /icon('icons/mob/human_face.dmi',"bald_s")
|
||||
|
||||
if(head_organ.f_style)
|
||||
var/datum/sprite_accessory/facial_hair/facial_hair_style = facial_hair_styles_list[head_organ.f_style]
|
||||
var/datum/sprite_accessory/facial_hair/facial_hair_style = GLOB.facial_hair_styles_list[head_organ.f_style]
|
||||
if(facial_hair_style && facial_hair_style.species_allowed)
|
||||
if((head_organ.dna.species.name in facial_hair_style.species_allowed) || (head_organ.dna.species.bodyflags & ALL_RPARTS)) //If the head's species is in the list of allowed species for the hairstyle, or the head's species is one flagged to have bodies comprised wholly of cybernetics...
|
||||
var/icon/facial_s = new/icon("icon" = facial_hair_style.icon, "icon_state" = "[facial_hair_style.icon_state]_s")
|
||||
@@ -765,7 +765,7 @@ var/global/list/damage_icon_parts = list()
|
||||
else
|
||||
new_glasses = image("icon" = 'icons/mob/eyes.dmi', "icon_state" = "[glasses.icon_state]")
|
||||
|
||||
var/datum/sprite_accessory/hair/hair_style = hair_styles_full_list[head_organ.h_style]
|
||||
var/datum/sprite_accessory/hair/hair_style = GLOB.hair_styles_full_list[head_organ.h_style]
|
||||
if(hair_style && hair_style.glasses_over) //Select which layer to use based on the properties of the hair style. Hair styles with hair that don't overhang the arms of the glasses should have glasses_over set to a positive value.
|
||||
overlays_standing[GLASSES_OVER_LAYER] = new_glasses
|
||||
else
|
||||
@@ -1029,7 +1029,7 @@ var/global/list/damage_icon_parts = list()
|
||||
var/obj/item/organ/external/head/head_organ = get_organ("head")
|
||||
var/datum/sprite_accessory/alt_heads/alternate_head
|
||||
if(head_organ.alt_head && head_organ.alt_head != "None")
|
||||
alternate_head = alt_heads_list[head_organ.alt_head]
|
||||
alternate_head = GLOB.alt_heads_list[head_organ.alt_head]
|
||||
|
||||
var/image/standing
|
||||
var/icon/mask_icon = new(wear_mask.icon)
|
||||
@@ -1166,7 +1166,7 @@ var/global/list/damage_icon_parts = list()
|
||||
var/datum/sprite_accessory/body_markings/tail/tail_marking_style
|
||||
if(m_styles["tail"] != "None" && (dna.species.bodyflags & HAS_TAIL_MARKINGS))
|
||||
var/tail_marking = m_styles["tail"]
|
||||
tail_marking_style = marking_styles_list[tail_marking]
|
||||
tail_marking_style = GLOB.marking_styles_list[tail_marking]
|
||||
tail_marking_icon = new/icon("icon" = tail_marking_style.icon, "icon_state" = "[tail_marking_style.icon_state]_s")
|
||||
tail_marking_icon.Blend(m_colours["tail"], ICON_ADD)
|
||||
|
||||
@@ -1233,7 +1233,7 @@ var/global/list/damage_icon_parts = list()
|
||||
var/datum/sprite_accessory/body_markings/tail/tail_marking_style
|
||||
if(m_styles["tail"] != "None" && (dna.species.bodyflags & HAS_TAIL_MARKINGS))
|
||||
var/tail_marking = m_styles["tail"]
|
||||
tail_marking_style = marking_styles_list[tail_marking]
|
||||
tail_marking_style = GLOB.marking_styles_list[tail_marking]
|
||||
tail_marking_icon = new/icon("icon" = tail_marking_style.icon, "icon_state" = "[tail_marking_style.icon_state]w_s")
|
||||
tail_marking_icon.Blend(m_colours["tail"], ICON_ADD)
|
||||
|
||||
|
||||
@@ -67,7 +67,7 @@
|
||||
..()
|
||||
|
||||
/mob/living/carbon/slime/Destroy()
|
||||
for(var/obj/machinery/computer/camera_advanced/xenobio/X in machines)
|
||||
for(var/obj/machinery/computer/camera_advanced/xenobio/X in GLOB.machines)
|
||||
if(src in X.stored_slimes)
|
||||
X.stored_slimes -= src
|
||||
return ..()
|
||||
|
||||
@@ -544,8 +544,8 @@
|
||||
restore_all_organs()
|
||||
surgeries.Cut() //End all surgeries.
|
||||
if(stat == DEAD)
|
||||
dead_mob_list -= src
|
||||
living_mob_list += src
|
||||
GLOB.dead_mob_list -= src
|
||||
GLOB.living_mob_list += src
|
||||
timeofdeath = 0
|
||||
|
||||
stat = CONSCIOUS
|
||||
|
||||
@@ -253,7 +253,7 @@ proc/get_radio_key_from_channel(var/channel)
|
||||
hearturfs += get_turf(O)
|
||||
listening_obj |= O
|
||||
|
||||
for(var/mob/M in player_list)
|
||||
for(var/mob/M in GLOB.player_list)
|
||||
if(!M.client)
|
||||
continue //skip monkeys and leavers
|
||||
if(isnewplayer(M))
|
||||
@@ -315,7 +315,7 @@ proc/get_radio_key_from_channel(var/channel)
|
||||
if(act && type && message) //parent call
|
||||
log_emote(message, src)
|
||||
|
||||
for(var/mob/M in dead_mob_list)
|
||||
for(var/mob/M in GLOB.dead_mob_list)
|
||||
if(!M.client || istype(M, /mob/new_player))
|
||||
continue //skip monkeys, leavers and new players //who the hell knows why new players are in the dead mob list
|
||||
|
||||
@@ -431,7 +431,7 @@ proc/get_radio_key_from_channel(var/channel)
|
||||
hearturfs += get_turf(L)
|
||||
|
||||
//ghosts
|
||||
for(var/mob/M in dead_mob_list) //does this include players who joined as observers as well?
|
||||
for(var/mob/M in GLOB.dead_mob_list) //does this include players who joined as observers as well?
|
||||
if(!M.client)
|
||||
continue
|
||||
if(M.stat == DEAD && M.client && M.get_preference(CHAT_GHOSTEARS))
|
||||
@@ -439,7 +439,7 @@ proc/get_radio_key_from_channel(var/channel)
|
||||
|
||||
// This, in tandem with "hearturfs", lets nested mobs hear whispers that are in range
|
||||
// Grifted from saycode above.
|
||||
for(var/mob/M in player_list)
|
||||
for(var/mob/M in GLOB.player_list)
|
||||
if(!M.client || isnewplayer(M))
|
||||
continue //skip monkeys and leavers
|
||||
if(get_turf(M) in hearturfs)
|
||||
|
||||
@@ -119,12 +119,12 @@ var/list/ai_verbs_default = list(
|
||||
announcement.announcer = name
|
||||
announcement.newscast = 0
|
||||
|
||||
var/list/possibleNames = ai_names
|
||||
var/list/possibleNames = GLOB.ai_names
|
||||
|
||||
var/pickedName = null
|
||||
while(!pickedName)
|
||||
pickedName = pick(ai_names)
|
||||
for(var/mob/living/silicon/ai/A in mob_list)
|
||||
pickedName = pick(GLOB.ai_names)
|
||||
for(var/mob/living/silicon/ai/A in GLOB.mob_list)
|
||||
if(A.real_name == pickedName && possibleNames.len > 1) //fixing the theoretically possible infinite loop
|
||||
possibleNames -= pickedName
|
||||
pickedName = null
|
||||
@@ -199,7 +199,7 @@ var/list/ai_verbs_default = list(
|
||||
builtInCamera.network = list("SS13")
|
||||
|
||||
ai_list += src
|
||||
shuttle_caller_list += src
|
||||
GLOB.shuttle_caller_list += src
|
||||
..()
|
||||
|
||||
/mob/living/silicon/ai/proc/on_mob_init()
|
||||
@@ -264,7 +264,7 @@ var/list/ai_verbs_default = list(
|
||||
|
||||
/mob/living/silicon/ai/Destroy()
|
||||
ai_list -= src
|
||||
shuttle_caller_list -= src
|
||||
GLOB.shuttle_caller_list -= src
|
||||
shuttle_master.autoEvac()
|
||||
QDEL_NULL(eyeobj) // No AI, no Eye
|
||||
if(malfhacking)
|
||||
@@ -613,7 +613,7 @@ var/list/ai_verbs_default = list(
|
||||
return
|
||||
|
||||
if(href_list["track"])
|
||||
var/mob/living/target = locate(href_list["track"]) in mob_list
|
||||
var/mob/living/target = locate(href_list["track"]) in GLOB.mob_list
|
||||
if(target && target.can_track())
|
||||
ai_actual_track(target)
|
||||
else
|
||||
@@ -621,7 +621,7 @@ var/list/ai_verbs_default = list(
|
||||
return
|
||||
|
||||
if(href_list["trackbot"])
|
||||
var/mob/living/simple_animal/bot/target = locate(href_list["trackbot"]) in simple_animal_list
|
||||
var/mob/living/simple_animal/bot/target = locate(href_list["trackbot"]) in GLOB.simple_animal_list
|
||||
if(target)
|
||||
ai_actual_track(target)
|
||||
else
|
||||
@@ -629,7 +629,7 @@ var/list/ai_verbs_default = list(
|
||||
return
|
||||
|
||||
if(href_list["callbot"]) //Command a bot to move to a selected location.
|
||||
Bot = locate(href_list["callbot"]) in simple_animal_list
|
||||
Bot = locate(href_list["callbot"]) in GLOB.simple_animal_list
|
||||
if(!Bot || Bot.remote_disabled || 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
|
||||
@@ -637,7 +637,7 @@ var/list/ai_verbs_default = list(
|
||||
return
|
||||
|
||||
if(href_list["interface"]) //Remotely connect to a bot!
|
||||
Bot = locate(href_list["interface"]) in simple_animal_list
|
||||
Bot = locate(href_list["interface"]) in GLOB.simple_animal_list
|
||||
if(!Bot || Bot.remote_disabled || control_disabled)
|
||||
return
|
||||
Bot.attack_ai(src)
|
||||
@@ -664,8 +664,8 @@ var/list/ai_verbs_default = list(
|
||||
M.transfer_ai(AI_MECH_HACK,src, usr) //Called om the mech itself.
|
||||
|
||||
else if(href_list["faketrack"])
|
||||
var/mob/target = locate(href_list["track"]) in mob_list
|
||||
var/mob/living/silicon/ai/A = locate(href_list["track2"]) in mob_list
|
||||
var/mob/target = locate(href_list["track"]) in GLOB.mob_list
|
||||
var/mob/living/silicon/ai/A = locate(href_list["track2"]) in GLOB.mob_list
|
||||
if(A && target)
|
||||
|
||||
A.cameraFollow = target
|
||||
@@ -679,7 +679,7 @@ var/list/ai_verbs_default = list(
|
||||
continue
|
||||
|
||||
else if(href_list["open"])
|
||||
var/mob/target = locate(href_list["open"]) in mob_list
|
||||
var/mob/target = locate(href_list["open"]) in GLOB.mob_list
|
||||
if(target)
|
||||
open_nearest_door(target)
|
||||
|
||||
@@ -717,7 +717,7 @@ var/list/ai_verbs_default = list(
|
||||
d += "<A HREF=?src=[UID()];botrefresh=\ref[Bot]>Query network status</A><br>"
|
||||
d += "<table width='100%'><tr><td width='40%'><h3>Name</h3></td><td width='20%'><h3>Status</h3></td><td width='30%'><h3>Location</h3></td><td width='10%'><h3>Control</h3></td></tr>"
|
||||
|
||||
for(var/mob/living/simple_animal/bot/Bot in simple_animal_list)
|
||||
for(var/mob/living/simple_animal/bot/Bot in GLOB.simple_animal_list)
|
||||
if(is_ai_allowed(Bot.z) && !Bot.remote_disabled) //Only non-emagged bots on the allowed Z-level are detected!
|
||||
bot_area = get_area(Bot)
|
||||
d += "<tr><td width='30%'>[Bot.hacked ? "<span class='bad'>(!) </span>[Bot.name]" : Bot.name] ([Bot.model])</td>"
|
||||
@@ -793,7 +793,7 @@ var/list/ai_verbs_default = list(
|
||||
if(!C.can_use())
|
||||
continue
|
||||
|
||||
var/list/tempnetwork = difflist(C.network,restricted_camera_networks,1)
|
||||
var/list/tempnetwork = difflist(C.network,GLOB.restricted_camera_networks,1)
|
||||
if(tempnetwork.len)
|
||||
for(var/i in tempnetwork)
|
||||
cameralist[i] = i
|
||||
@@ -843,7 +843,7 @@ var/list/ai_verbs_default = list(
|
||||
if(check_unable())
|
||||
return
|
||||
|
||||
for(var/obj/machinery/M in machines) //change status
|
||||
for(var/obj/machinery/M in GLOB.machines) //change status
|
||||
if(istype(M, /obj/machinery/ai_status_display))
|
||||
var/obj/machinery/ai_status_display/AISD = M
|
||||
AISD.emotion = emote
|
||||
|
||||
@@ -15,13 +15,13 @@
|
||||
see_in_dark = 8
|
||||
see_invisible = SEE_INVISIBLE_LEVEL_TWO
|
||||
|
||||
shuttle_caller_list -= src
|
||||
GLOB.shuttle_caller_list -= src
|
||||
shuttle_master.autoEvac()
|
||||
|
||||
if(nuking)
|
||||
set_security_level("red")
|
||||
nuking = 0
|
||||
for(var/obj/item/pinpointer/point in pinpointer_list)
|
||||
for(var/obj/item/pinpointer/point in GLOB.pinpointer_list)
|
||||
point.the_disk = null //Point back to the disk.
|
||||
|
||||
if(doomsday_device)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
var/global/list/empty_playable_ai_cores = list()
|
||||
|
||||
/hook/roundstart/proc/spawn_empty_ai()
|
||||
for(var/obj/effect/landmark/start/S in landmarks_list)
|
||||
for(var/obj/effect/landmark/start/S in GLOB.landmarks_list)
|
||||
if(S.name != "AI")
|
||||
continue
|
||||
if(locate(/mob/living) in S.loc)
|
||||
@@ -42,21 +42,21 @@ var/global/list/empty_playable_ai_cores = list()
|
||||
// TODO: Move away from the insane name-based landmark system
|
||||
/mob/living/silicon/ai/proc/moveToAILandmark()
|
||||
var/obj/loc_landmark
|
||||
for(var/obj/effect/landmark/start/sloc in landmarks_list)
|
||||
for(var/obj/effect/landmark/start/sloc in GLOB.landmarks_list)
|
||||
if(sloc.name != "AI")
|
||||
continue
|
||||
if(locate(/mob/living) in sloc.loc)
|
||||
continue
|
||||
loc_landmark = sloc
|
||||
if(!loc_landmark)
|
||||
for(var/obj/effect/landmark/tripai in landmarks_list)
|
||||
for(var/obj/effect/landmark/tripai in GLOB.landmarks_list)
|
||||
if(tripai.name == "tripai")
|
||||
if(locate(/mob/living) in tripai.loc)
|
||||
continue
|
||||
loc_landmark = tripai
|
||||
if(!loc_landmark)
|
||||
to_chat(src, "Oh god sorry we can't find an unoccupied AI spawn location, so we're spawning you on top of someone.")
|
||||
for(var/obj/effect/landmark/start/sloc in landmarks_list)
|
||||
for(var/obj/effect/landmark/start/sloc in GLOB.landmarks_list)
|
||||
if(sloc.name == "AI")
|
||||
loc_landmark = sloc
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
|
||||
/mob/living/silicon/ai/add_ion_law(var/law)
|
||||
..()
|
||||
for(var/mob/living/silicon/robot/R in mob_list)
|
||||
for(var/mob/living/silicon/robot/R in GLOB.mob_list)
|
||||
if(R.lawupdate && (R.connected_ai == src))
|
||||
R.show_laws()
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/mob/living/silicon/ai/Login() //ThisIsDumb(TM) TODO: tidy this up ¬_¬ ~Carn
|
||||
/mob/living/silicon/ai/Login() //ThisIsDumb(TM) TODO: tidy this up �_� ~Carn
|
||||
..()
|
||||
for(var/obj/effect/rune/rune in world)
|
||||
var/image/blood = image(loc = rune)
|
||||
@@ -7,7 +7,7 @@
|
||||
regenerate_icons()
|
||||
|
||||
if(stat != DEAD)
|
||||
for(var/obj/machinery/ai_status_display/O in machines) //change status
|
||||
for(var/obj/machinery/ai_status_display/O in GLOB.machines) //change status
|
||||
O.mode = 1
|
||||
O.emotion = "Neutral"
|
||||
view_core()
|
||||
@@ -148,7 +148,7 @@ var/const/VOX_PATH = "sound/vox_fem/"
|
||||
// If there is no single listener, broadcast to everyone in the same z level
|
||||
if(!only_listener)
|
||||
// Play voice for all mobs in the z level
|
||||
for(var/mob/M in player_list)
|
||||
for(var/mob/M in GLOB.player_list)
|
||||
if(M.client)
|
||||
var/turf/T = get_turf(M)
|
||||
if(T && T.z == z_level && M.can_hear())
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
// flick("gibbed-r", animation)
|
||||
robogibs(loc)
|
||||
|
||||
dead_mob_list -= src
|
||||
GLOB.dead_mob_list -= src
|
||||
spawn(15)
|
||||
if(animation) qdel(animation)
|
||||
if(src) qdel(src)
|
||||
@@ -37,7 +37,7 @@
|
||||
// flick("dust-r", animation)
|
||||
new /obj/effect/decal/remains/robot(loc)
|
||||
|
||||
dead_mob_list -= src
|
||||
GLOB.dead_mob_list -= src
|
||||
spawn(15)
|
||||
if(animation) qdel(animation)
|
||||
if(src) qdel(src)
|
||||
|
||||
@@ -23,6 +23,6 @@
|
||||
//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.
|
||||
//Read as: I have no idea what I'm doing but asking for help got me nowhere so this is what you get. - Nodrak
|
||||
if(mind) qdel(mind)
|
||||
living_mob_list -= src
|
||||
GLOB.living_mob_list -= src
|
||||
if(icon_state != "[chassis]_dead" || cleanWipe)
|
||||
qdel(src)
|
||||
|
||||
@@ -26,7 +26,7 @@ var/datum/paiController/paiController // Global handler for pAI candidates
|
||||
if("signup" in href_list)
|
||||
var/mob/dead/observer/O = locate(href_list["signup"])
|
||||
if(!O) return
|
||||
if(!(O in respawnable_list))
|
||||
if(!(O in GLOB.respawnable_list))
|
||||
to_chat(O, "You've given up your ability to respawn!")
|
||||
return
|
||||
if(!check_recruit(O)) return
|
||||
@@ -41,7 +41,7 @@ var/datum/paiController/paiController // Global handler for pAI candidates
|
||||
if(istype(card,/obj/item/paicard) && istype(candidate,/datum/paiCandidate))
|
||||
var/mob/living/silicon/pai/pai = new(card)
|
||||
if(!candidate.name)
|
||||
pai.name = pick(ninja_names)
|
||||
pai.name = pick(GLOB.ninja_names)
|
||||
else
|
||||
pai.name = candidate.name
|
||||
pai.real_name = pai.name
|
||||
@@ -237,7 +237,7 @@ var/datum/paiController/paiController // Global handler for pAI candidates
|
||||
for(var/datum/paiCandidate/c in paiController.pai_candidates)
|
||||
if(c.ready)
|
||||
var/found = 0
|
||||
for(var/mob/o in respawnable_list)
|
||||
for(var/mob/o in GLOB.respawnable_list)
|
||||
if(o.key == c.key)
|
||||
found = 1
|
||||
if(found)
|
||||
@@ -348,7 +348,7 @@ var/datum/paiController/paiController // Global handler for pAI candidates
|
||||
user << browse(dat, "window=findPai")
|
||||
|
||||
proc/requestRecruits(var/obj/item/paicard/P, mob/user)
|
||||
for(var/mob/dead/observer/O in player_list)
|
||||
for(var/mob/dead/observer/O in GLOB.player_list)
|
||||
if(O.client && (ROLE_PAI in O.client.prefs.be_special))
|
||||
if(player_old_enough_antag(O.client,ROLE_PAI))
|
||||
if(check_recruit(O))
|
||||
@@ -362,7 +362,7 @@ var/datum/paiController/paiController // Global handler for pAI candidates
|
||||
return 0
|
||||
if(cannotPossess(O))
|
||||
return 0
|
||||
if(!(O in respawnable_list))
|
||||
if(!(O in GLOB.respawnable_list))
|
||||
return 0
|
||||
if(O.client)
|
||||
return 1
|
||||
|
||||
@@ -383,7 +383,7 @@
|
||||
|
||||
/mob/living/silicon/pai/proc/hackloop()
|
||||
var/turf/T = get_turf_or_move(src.loc)
|
||||
for(var/mob/living/silicon/ai/AI in player_list)
|
||||
for(var/mob/living/silicon/ai/AI in GLOB.player_list)
|
||||
if(!T || !is_station_contact(T.z))
|
||||
break
|
||||
if(T.loc)
|
||||
|
||||
@@ -16,8 +16,8 @@
|
||||
flick("gibbed-r", animation)
|
||||
robogibs(loc)
|
||||
|
||||
living_mob_list -= src
|
||||
dead_mob_list -= src
|
||||
GLOB.living_mob_list -= src
|
||||
GLOB.dead_mob_list -= src
|
||||
spawn(15)
|
||||
if(animation) qdel(animation)
|
||||
if(src) qdel(src)
|
||||
@@ -39,7 +39,7 @@
|
||||
new /obj/effect/decal/remains/robot(loc)
|
||||
if(mmi) qdel(mmi) //Delete the MMI first so that it won't go popping out.
|
||||
|
||||
dead_mob_list -= src
|
||||
GLOB.dead_mob_list -= src
|
||||
spawn(15)
|
||||
if(animation) qdel(animation)
|
||||
if(src) qdel(src)
|
||||
|
||||
@@ -274,7 +274,7 @@
|
||||
//Reboot procs.
|
||||
|
||||
/mob/living/silicon/robot/drone/proc/request_player()
|
||||
for(var/mob/dead/observer/O in player_list)
|
||||
for(var/mob/dead/observer/O in GLOB.player_list)
|
||||
if(cannotPossess(O))
|
||||
continue
|
||||
if(jobban_isbanned(O,"nonhumandept") || jobban_isbanned(O,"Drone"))
|
||||
|
||||
@@ -4,14 +4,14 @@
|
||||
set desc = "Tag yourself for delivery through the disposals system."
|
||||
set category = "Drone"
|
||||
|
||||
var/tag = input("Select the desired destination.", "Set Mail Tag", null) as null|anything in TAGGERLOCATIONS
|
||||
var/tag = input("Select the desired destination.", "Set Mail Tag", null) as null|anything in GLOB.TAGGERLOCATIONS
|
||||
|
||||
if(!tag || TAGGERLOCATIONS[tag])
|
||||
if(!tag || GLOB.TAGGERLOCATIONS[tag])
|
||||
mail_destination = 0
|
||||
return
|
||||
|
||||
to_chat(src, "<span class='notice'>You configure your internal beacon, tagging yourself for delivery to '[tag]'.</span>")
|
||||
mail_destination = TAGGERLOCATIONS.Find(tag)
|
||||
mail_destination = GLOB.TAGGERLOCATIONS.Find(tag)
|
||||
|
||||
//Auto flush if we use this verb inside a disposal chute.
|
||||
var/obj/machinery/disposal/D = src.loc
|
||||
|
||||
@@ -63,9 +63,9 @@
|
||||
if(href_list["setarea"])
|
||||
|
||||
//Probably should consider using another list, but this one will do.
|
||||
var/t_area = input("Select the area to ping.", "Set Target Area", null) as null|anything in TAGGERLOCATIONS
|
||||
var/t_area = input("Select the area to ping.", "Set Target Area", null) as null|anything in GLOB.TAGGERLOCATIONS
|
||||
|
||||
if(!t_area || TAGGERLOCATIONS[t_area])
|
||||
if(!t_area || GLOB.TAGGERLOCATIONS[t_area])
|
||||
return
|
||||
|
||||
drone_call_area = t_area
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
if(!speaking)
|
||||
speaking = parse_language(message)
|
||||
if(!speaking)
|
||||
speaking = istype(get_default_language(), /datum/language) ? get_default_language() : all_languages[get_default_language()]
|
||||
speaking = istype(get_default_language(), /datum/language) ? get_default_language() : GLOB.all_languages[get_default_language()]
|
||||
message = speaking.key + " " + message; // Prepend key to prevent the message from getting trimmed
|
||||
if(speaking)
|
||||
return ..()
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
var/obj/item/radio/common_radio
|
||||
|
||||
/mob/living/silicon/New()
|
||||
silicon_mob_list |= src
|
||||
GLOB.silicon_mob_list |= src
|
||||
..()
|
||||
var/datum/atom_hud/data/diagnostic/diag_hud = huds[DATA_HUD_DIAGNOSTIC]
|
||||
diag_hud.add_to_hud(src)
|
||||
@@ -51,7 +51,7 @@
|
||||
return //we use a different hud
|
||||
|
||||
/mob/living/silicon/Destroy()
|
||||
silicon_mob_list -= src
|
||||
GLOB.silicon_mob_list -= src
|
||||
for(var/datum/alarm_handler/AH in alarm_handlers)
|
||||
AH.unregister(src)
|
||||
return ..()
|
||||
@@ -163,7 +163,7 @@
|
||||
|
||||
/mob/living/silicon/add_language(var/language, var/can_speak=1)
|
||||
if(..(language) && can_speak)
|
||||
speech_synthesizer_langs.Add(all_languages[language])
|
||||
speech_synthesizer_langs.Add(GLOB.all_languages[language])
|
||||
return 1
|
||||
|
||||
/mob/living/silicon/remove_language(var/rem_language)
|
||||
|
||||
@@ -137,7 +137,7 @@
|
||||
|
||||
/mob/living/simple_animal/bot/New()
|
||||
..()
|
||||
bots_list += src
|
||||
GLOB.bots_list += src
|
||||
icon_living = icon_state
|
||||
icon_dead = icon_state
|
||||
access_card = new /obj/item/card/id(src)
|
||||
@@ -151,7 +151,7 @@
|
||||
add_language("Tradeband", 1)
|
||||
add_language("Gutter", 1)
|
||||
add_language("Trinary", 1)
|
||||
default_language = all_languages["Galactic Common"]
|
||||
default_language = GLOB.all_languages["Galactic Common"]
|
||||
|
||||
bot_core = new bot_core_type(src)
|
||||
spawn(30)
|
||||
@@ -190,7 +190,7 @@
|
||||
if(path_hud)
|
||||
QDEL_NULL(path_hud)
|
||||
path_hud = null
|
||||
bots_list -= src
|
||||
GLOB.bots_list -= src
|
||||
QDEL_NULL(Radio)
|
||||
QDEL_NULL(access_card)
|
||||
if(reset_access_timer_id)
|
||||
@@ -656,7 +656,7 @@ Pass a positive integer as an argument to override a bot's default speed.
|
||||
|
||||
/mob/living/simple_animal/bot/proc/get_next_patrol_target()
|
||||
// search the beacon list for the next target in the list.
|
||||
for(var/obj/machinery/navbeacon/NB in navbeacons["[z]"])
|
||||
for(var/obj/machinery/navbeacon/NB in GLOB.navbeacons["[z]"])
|
||||
if(NB.location == next_destination) //Does the Beacon location text match the destination?
|
||||
destination = new_destination //We now know the name of where we want to go.
|
||||
patrol_target = NB.loc //Get its location and set it as the target.
|
||||
@@ -664,7 +664,7 @@ Pass a positive integer as an argument to override a bot's default speed.
|
||||
return 1
|
||||
|
||||
/mob/living/simple_animal/bot/proc/find_nearest_beacon()
|
||||
for(var/obj/machinery/navbeacon/NB in navbeacons["[z]"])
|
||||
for(var/obj/machinery/navbeacon/NB in GLOB.navbeacons["[z]"])
|
||||
var/dist = get_dist(src, NB)
|
||||
if(nearest_beacon) //Loop though the beacon net to find the true closest beacon.
|
||||
//Ignore the beacon if were are located on it.
|
||||
|
||||
@@ -543,7 +543,7 @@
|
||||
return
|
||||
|
||||
/mob/living/simple_animal/bot/medbot/proc/check_overdose(mob/living/carbon/patient,reagent_id,injection_amount)
|
||||
var/datum/reagent/R = chemical_reagents_list[reagent_id]
|
||||
var/datum/reagent/R = GLOB.chemical_reagents_list[reagent_id]
|
||||
if(!R.overdose_threshold)
|
||||
return 0
|
||||
var/current_volume = patient.reagents.get_reagent_amount(reagent_id)
|
||||
|
||||
@@ -214,7 +214,7 @@
|
||||
if(mode == BOT_IDLE || mode == BOT_DELIVER)
|
||||
start_home()
|
||||
if("destination")
|
||||
var/new_dest = input(usr, "Enter Destination:", name, destination) as null|anything in deliverybeacontags
|
||||
var/new_dest = input(usr, "Enter Destination:", name, destination) as null|anything in GLOB.deliverybeacontags
|
||||
if(new_dest)
|
||||
set_destination(new_dest)
|
||||
if("setid")
|
||||
@@ -222,7 +222,7 @@
|
||||
if(new_id)
|
||||
set_suffix(new_id)
|
||||
if("sethome")
|
||||
var/new_home = input(usr, "Enter Home:", name, home_destination) as null|anything in deliverybeacontags
|
||||
var/new_home = input(usr, "Enter Home:", name, home_destination) as null|anything in GLOB.deliverybeacontags
|
||||
if(new_home)
|
||||
home_destination = new_home
|
||||
if("unload")
|
||||
@@ -809,7 +809,7 @@
|
||||
if(!on || !wires.BeaconRX())
|
||||
return
|
||||
|
||||
for(var/obj/machinery/navbeacon/NB in deliverybeacons)
|
||||
for(var/obj/machinery/navbeacon/NB in GLOB.deliverybeacons)
|
||||
if(NB.location == new_destination) // if the beacon location matches the set destination
|
||||
destination = new_destination // the we will navigate there
|
||||
target = NB.loc
|
||||
|
||||
@@ -57,12 +57,12 @@
|
||||
if(!B.brainmob.key)
|
||||
var/ghost_can_reenter = 0
|
||||
if(B.brainmob.mind)
|
||||
for(var/mob/dead/observer/G in player_list)
|
||||
for(var/mob/dead/observer/G in GLOB.player_list)
|
||||
if(G.can_reenter_corpse && G.mind == B.brainmob.mind)
|
||||
ghost_can_reenter = 1
|
||||
break
|
||||
for(var/mob/living/simple_animal/S in player_list)
|
||||
if(S in respawnable_list)
|
||||
for(var/mob/living/simple_animal/S in GLOB.player_list)
|
||||
if(S in GLOB.respawnable_list)
|
||||
ghost_can_reenter = 1
|
||||
break
|
||||
if(!ghost_can_reenter)
|
||||
|
||||
@@ -263,7 +263,7 @@
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You don't have enough royal bee jelly to split a bee in two!</span>")
|
||||
else
|
||||
var/datum/reagent/R = chemical_reagents_list[S.reagents.get_master_reagent_id()]
|
||||
var/datum/reagent/R = GLOB.chemical_reagents_list[S.reagents.get_master_reagent_id()]
|
||||
if(R && S.reagents.has_reagent(R.id, 5))
|
||||
S.reagents.remove_reagent(R.id,5)
|
||||
queen.assign_reagent(R)
|
||||
|
||||
@@ -107,7 +107,7 @@ Difficulty: Hard
|
||||
|
||||
/mob/living/simple_animal/hostile/megafauna/bubblegum/New()
|
||||
..()
|
||||
for(var/mob/living/simple_animal/hostile/megafauna/bubblegum/B in mob_list)
|
||||
for(var/mob/living/simple_animal/hostile/megafauna/bubblegum/B in GLOB.mob_list)
|
||||
if(B != src)
|
||||
qdel(src) //There can be only one
|
||||
break
|
||||
|
||||
@@ -119,7 +119,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 mob_list)
|
||||
for(var/mob/living/simple_animal/hostile/megafauna/legion/other in GLOB.mob_list)
|
||||
if(other != src)
|
||||
last_legion = FALSE
|
||||
break
|
||||
|
||||
@@ -179,7 +179,7 @@
|
||||
range = 10
|
||||
|
||||
/obj/effect/proc_holder/spell/aoe_turf/blindness/cast(list/targets, mob/user = usr)
|
||||
for(var/mob/living/L in living_mob_list)
|
||||
for(var/mob/living/L in GLOB.living_mob_list)
|
||||
if(L == user)
|
||||
continue
|
||||
var/turf/T = get_turf(L.loc)
|
||||
|
||||
@@ -97,7 +97,7 @@
|
||||
|
||||
/mob/living/simple_animal/hostile/syndicate/melee/autogib/depot/New()
|
||||
..()
|
||||
name = "[name] [pick(last_names)]"
|
||||
name = "[name] [pick(GLOB.last_names)]"
|
||||
depotarea = areaMaster
|
||||
spawn_turf = get_turf(src)
|
||||
|
||||
@@ -217,7 +217,7 @@
|
||||
/mob/living/simple_animal/hostile/syndicate/melee/autogib/depot/armory/LateInitialize()
|
||||
if(istype(depotarea))
|
||||
var/list/key_candidates = list()
|
||||
for(var/mob/living/simple_animal/hostile/syndicate/melee/autogib/depot/officer/O in living_mob_list)
|
||||
for(var/mob/living/simple_animal/hostile/syndicate/melee/autogib/depot/officer/O in GLOB.living_mob_list)
|
||||
key_candidates += O
|
||||
if(key_candidates.len)
|
||||
var/mob/living/simple_animal/hostile/syndicate/melee/autogib/depot/officer/O = pick(key_candidates)
|
||||
|
||||
@@ -40,5 +40,5 @@
|
||||
to_chat(user, "<span class='notice'>Someone else already took this spider.</span>")
|
||||
return
|
||||
key = user.key
|
||||
for(var/mob/dead/observer/G in player_list)
|
||||
for(var/mob/dead/observer/G in GLOB.player_list)
|
||||
G.show_message("<i>A ghost has taken control of <b>[src]</b>. ([ghost_follow_link(src, ghost=G)]).</i>")
|
||||
@@ -224,7 +224,7 @@
|
||||
|
||||
/mob/living/simple_animal/hostile/poison/terror_spider/queen/proc/MassFlicker()
|
||||
var/list/target_lights = list()
|
||||
for(var/mob/living/carbon/human/H in player_list)
|
||||
for(var/mob/living/carbon/human/H in GLOB.player_list)
|
||||
if(H.z != z)
|
||||
continue
|
||||
if(H.stat == DEAD)
|
||||
|
||||
@@ -316,6 +316,6 @@
|
||||
// --------------------------------------------------------------------------------
|
||||
|
||||
/mob/living/simple_animal/hostile/poison/terror_spider/proc/UnlockBlastDoors(target_id_tag)
|
||||
for(var/obj/machinery/door/poddoor/P in airlocks)
|
||||
for(var/obj/machinery/door/poddoor/P in GLOB.airlocks)
|
||||
if(P.density && P.id_tag == target_id_tag && P.z == z && !P.operating)
|
||||
P.open()
|
||||
@@ -241,7 +241,7 @@ var/global/list/ts_spiderling_list = list()
|
||||
add_language("Spider Hivemind")
|
||||
if(spider_tier >= TS_TIER_2)
|
||||
add_language("Galactic Common")
|
||||
default_language = all_languages["Spider Hivemind"]
|
||||
default_language = GLOB.all_languages["Spider Hivemind"]
|
||||
|
||||
web_action = new()
|
||||
web_action.Grant(src)
|
||||
|
||||
@@ -91,7 +91,7 @@
|
||||
|
||||
/mob/living/simple_animal/parrot/New()
|
||||
..()
|
||||
hear_radio_list += src
|
||||
GLOB.hear_radio_list += src
|
||||
if(!ears)
|
||||
var/headset = pick(/obj/item/radio/headset/headset_sec, \
|
||||
/obj/item/radio/headset/headset_eng, \
|
||||
@@ -109,7 +109,7 @@
|
||||
/mob/living/simple_animal/parrot/proc/perch_player)
|
||||
|
||||
/mob/living/simple_animal/parrot/Destroy()
|
||||
hear_radio_list -= src
|
||||
GLOB.hear_radio_list -= src
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_animal/parrot/death(gibbed)
|
||||
|
||||
@@ -82,7 +82,7 @@
|
||||
|
||||
/mob/living/simple_animal/Initialize()
|
||||
..()
|
||||
simple_animal_list += src
|
||||
GLOB.simple_animal_list += src
|
||||
verbs -= /mob/verb/observe
|
||||
if(!can_hide)
|
||||
verbs -= /mob/living/simple_animal/verb/hide
|
||||
@@ -96,7 +96,7 @@
|
||||
collar.forceMove(loc)
|
||||
collar = null
|
||||
master_commander = null
|
||||
simple_animal_list -= src
|
||||
GLOB.simple_animal_list -= src
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_animal/Login()
|
||||
|
||||
@@ -45,8 +45,8 @@
|
||||
create_attack_log("<font color='red'>Came back to life at [atom_loc_line(get_turf(src))]</font>")
|
||||
log_game("[key_name(src)] came back to life at [atom_loc_line(get_turf(src))]")
|
||||
stat = CONSCIOUS
|
||||
dead_mob_list -= src
|
||||
living_mob_list += src
|
||||
GLOB.dead_mob_list -= src
|
||||
GLOB.living_mob_list += src
|
||||
timeofdeath = null
|
||||
if(updating)
|
||||
update_canmove()
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
log_access_in(client)
|
||||
create_attack_log("<font color='red'>Logged in at [atom_loc_line(get_turf(src))]</font>")
|
||||
if(config.log_access)
|
||||
for(var/mob/M in player_list)
|
||||
for(var/mob/M in GLOB.player_list)
|
||||
if(M == src) continue
|
||||
if( M.key && (M.key != key) )
|
||||
var/matches
|
||||
@@ -26,7 +26,7 @@
|
||||
log_adminwarn("Notice: [key_name(src)] has the same [matches] as [key_name(M)] (no longer logged in).")
|
||||
|
||||
/mob/Login()
|
||||
player_list |= src
|
||||
GLOB.player_list |= src
|
||||
update_Login_details()
|
||||
world.update_status()
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
reset_perspective(loc)
|
||||
|
||||
|
||||
if(ckey in deadmins)
|
||||
if(ckey in GLOB.deadmins)
|
||||
verbs += /client/proc/readmin
|
||||
|
||||
//Clear ability list and update from mob.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/mob/Logout()
|
||||
SSnanoui.user_logout(src) // this is used to clean up (remove) this user's Nano UIs
|
||||
unset_machine()
|
||||
player_list -= src
|
||||
GLOB.player_list -= src
|
||||
log_access_out(src)
|
||||
create_attack_log("<font color='red'>Logged out at [atom_loc_line(get_turf(src))]</font>")
|
||||
// `holder` is nil'd out by now, so we check the `admin_datums` array directly
|
||||
|
||||
+14
-14
@@ -1,7 +1,7 @@
|
||||
/mob/Destroy()//This makes sure that mobs with clients/keys are not just deleted from the game.
|
||||
mob_list -= src
|
||||
dead_mob_list -= src
|
||||
living_mob_list -= src
|
||||
GLOB.mob_list -= src
|
||||
GLOB.dead_mob_list -= src
|
||||
GLOB.living_mob_list -= src
|
||||
QDEL_NULL(hud_used)
|
||||
if(mind && mind.current == src)
|
||||
spellremove(src)
|
||||
@@ -25,11 +25,11 @@
|
||||
return QDEL_HINT_HARDDEL
|
||||
|
||||
/mob/Initialize()
|
||||
mob_list += src
|
||||
GLOB.mob_list += src
|
||||
if(stat == DEAD)
|
||||
dead_mob_list += src
|
||||
GLOB.dead_mob_list += src
|
||||
else
|
||||
living_mob_list += src
|
||||
GLOB.living_mob_list += src
|
||||
prepare_huds()
|
||||
..()
|
||||
|
||||
@@ -164,7 +164,7 @@
|
||||
M.show_message( message, 2, deaf_message, 1)
|
||||
|
||||
/mob/proc/findname(msg)
|
||||
for(var/mob/M in mob_list)
|
||||
for(var/mob/M in GLOB.mob_list)
|
||||
if(M.real_name == text("[]", msg))
|
||||
return M
|
||||
return 0
|
||||
@@ -810,7 +810,7 @@ var/list/slot_equipment_priority = list( \
|
||||
creatures[name] = O
|
||||
|
||||
|
||||
for(var/mob/M in sortAtom(mob_list))
|
||||
for(var/mob/M in sortAtom(GLOB.mob_list))
|
||||
var/name = M.name
|
||||
if(names.Find(name))
|
||||
namecounts[name]++
|
||||
@@ -1095,26 +1095,26 @@ var/list/slot_equipment_priority = list( \
|
||||
to_chat(src, "<span class='warning'>You can't respawn as an NPC before the game starts!</span>")
|
||||
return
|
||||
|
||||
if((usr in respawnable_list) && (stat==2 || istype(usr,/mob/dead/observer)))
|
||||
if((usr in GLOB.respawnable_list) && (stat==2 || istype(usr,/mob/dead/observer)))
|
||||
var/list/creatures = list("Mouse")
|
||||
for(var/mob/living/L in living_mob_list)
|
||||
for(var/mob/living/L in GLOB.living_mob_list)
|
||||
if(safe_respawn(L.type) && L.stat!=2)
|
||||
if(!L.key)
|
||||
creatures += L
|
||||
var/picked = input("Please select an NPC to respawn as", "Respawn as NPC") as null|anything in creatures
|
||||
switch(picked)
|
||||
if("Mouse")
|
||||
respawnable_list -= usr
|
||||
GLOB.respawnable_list -= usr
|
||||
become_mouse()
|
||||
spawn(5)
|
||||
respawnable_list += usr
|
||||
GLOB.respawnable_list += usr
|
||||
else
|
||||
var/mob/living/NPC = picked
|
||||
if(istype(NPC) && !NPC.key)
|
||||
respawnable_list -= usr
|
||||
GLOB.respawnable_list -= usr
|
||||
NPC.key = key
|
||||
spawn(5)
|
||||
respawnable_list += usr
|
||||
GLOB.respawnable_list += usr
|
||||
else
|
||||
to_chat(usr, "You are not dead or you have given up your right to be respawned!")
|
||||
return
|
||||
|
||||
@@ -308,7 +308,7 @@ proc/muffledspeech(phrase)
|
||||
|
||||
|
||||
/proc/findname(msg)
|
||||
for(var/mob/M in mob_list)
|
||||
for(var/mob/M in GLOB.mob_list)
|
||||
if(M.real_name == text("[msg]"))
|
||||
return 1
|
||||
return 0
|
||||
@@ -442,7 +442,7 @@ var/list/intents = list(INTENT_HELP,INTENT_DISARM,INTENT_GRAB,INTENT_HARM)
|
||||
else
|
||||
name = realname
|
||||
|
||||
for(var/mob/M in player_list)
|
||||
for(var/mob/M in GLOB.player_list)
|
||||
if(M.client && ((!istype(M, /mob/new_player) && M.stat == DEAD) || check_rights(R_ADMIN|R_MOD,0,M)) && M.get_preference(CHAT_DEAD))
|
||||
var/follow
|
||||
var/lname
|
||||
@@ -467,7 +467,7 @@ var/list/intents = list(INTENT_HELP,INTENT_DISARM,INTENT_GRAB,INTENT_HARM)
|
||||
to_chat(M, "<span class='deadsay'>[lname][follow][message]</span>")
|
||||
|
||||
/proc/notify_ghosts(message, ghost_sound = null, enter_link = null, title = null, atom/source = null, image/alert_overlay = null, flashwindow = TRUE, var/action = NOTIFY_JUMP) //Easy notification of ghosts.
|
||||
for(var/mob/dead/observer/O in player_list)
|
||||
for(var/mob/dead/observer/O in GLOB.player_list)
|
||||
if(O.client)
|
||||
to_chat(O, "<span class='ghostalert'>[message][(enter_link) ? " [enter_link]" : ""]</span>")
|
||||
if(ghost_sound)
|
||||
@@ -568,7 +568,7 @@ var/list/intents = list(INTENT_HELP,INTENT_DISARM,INTENT_GRAB,INTENT_HARM)
|
||||
return //took too long
|
||||
newname = reject_bad_name(newname,allow_numbers) //returns null if the name doesn't meet some basic requirements. Tidies up a few other things like bad-characters.
|
||||
|
||||
for(var/mob/living/M in player_list)
|
||||
for(var/mob/living/M in GLOB.player_list)
|
||||
if(M == src)
|
||||
continue
|
||||
if(!newname || M.real_name == newname)
|
||||
|
||||
@@ -15,11 +15,11 @@
|
||||
lastarea = loc
|
||||
|
||||
sight |= SEE_TURFS
|
||||
player_list |= src
|
||||
GLOB.player_list |= src
|
||||
|
||||
/*
|
||||
var/list/watch_locations = list()
|
||||
for(var/obj/effect/landmark/landmark in landmarks_list)
|
||||
for(var/obj/effect/landmark/landmark in GLOB.landmarks_list)
|
||||
if(landmark.tag == "landmark*new_player")
|
||||
watch_locations += landmark.loc
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
if(newpoll)
|
||||
client.handle_player_polling()
|
||||
|
||||
if(ckey in deadmins)
|
||||
if(ckey in GLOB.deadmins)
|
||||
verbs += /client/proc/readmin
|
||||
spawn(40)
|
||||
if(client)
|
||||
@@ -57,7 +57,7 @@
|
||||
if(src.client.holder) return //admins are immune to overflow rerouting
|
||||
if(config.overflow_whitelist.Find(lowertext(src.ckey))) return //Whitelisted people are immune to overflow rerouting.
|
||||
var/tally = 0
|
||||
for(var/client/C in clients)
|
||||
for(var/client/C in GLOB.clients)
|
||||
tally++
|
||||
if(tally > config.player_overflow_cap)
|
||||
src << link(config.overflow_server_url)
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
anchored = 1 // don't get pushed around
|
||||
|
||||
/mob/new_player/New()
|
||||
mob_list += src
|
||||
GLOB.mob_list += src
|
||||
|
||||
/mob/new_player/verb/new_player_panel()
|
||||
set src = usr
|
||||
@@ -129,7 +129,7 @@
|
||||
stat("Players Ready:", "[totalPlayersReady]")
|
||||
totalPlayers = 0
|
||||
totalPlayersReady = 0
|
||||
for(var/mob/new_player/player in player_list)
|
||||
for(var/mob/new_player/player in GLOB.player_list)
|
||||
if(check_rights(R_ADMIN, 0, src))
|
||||
stat("[player.key]", (player.ready)?("(Playing)"):(null))
|
||||
totalPlayers++
|
||||
@@ -209,7 +209,7 @@
|
||||
if(!client.holder && !config.antag_hud_allowed) // For new ghosts we remove the verb from even showing up if it's not allowed.
|
||||
observer.verbs -= /mob/dead/observer/verb/toggle_antagHUD // Poor guys, don't know what they are missing!
|
||||
observer.key = key
|
||||
respawnable_list += observer
|
||||
GLOB.respawnable_list += observer
|
||||
qdel(src)
|
||||
return 1
|
||||
if(href_list["tos"])
|
||||
@@ -224,7 +224,7 @@
|
||||
to_chat(usr, "<span class='warning'>The round is either not ready, or has already finished...</span>")
|
||||
return
|
||||
|
||||
if(client.prefs.species in whitelisted_species)
|
||||
if(client.prefs.species in GLOB.whitelisted_species)
|
||||
|
||||
if(!is_alien_whitelisted(src, client.prefs.species) && config.usealienwhitelist)
|
||||
to_chat(src, alert("You are currently not whitelisted to play [client.prefs.species]."))
|
||||
@@ -244,7 +244,7 @@
|
||||
if(client.prefs.randomslot)
|
||||
client.prefs.load_random_character_slot(client)
|
||||
|
||||
if(client.prefs.species in whitelisted_species)
|
||||
if(client.prefs.species in GLOB.whitelisted_species)
|
||||
if(!is_alien_whitelisted(src, client.prefs.species) && config.usealienwhitelist)
|
||||
to_chat(src, alert("You are currently not whitelisted to play [client.prefs.species]."))
|
||||
return 0
|
||||
@@ -385,7 +385,7 @@
|
||||
/mob/new_player/proc/AnnounceArrival(var/mob/living/carbon/human/character, var/rank, var/join_message)
|
||||
if(ticker.current_state == GAME_STATE_PLAYING)
|
||||
var/ailist[] = list()
|
||||
for(var/mob/living/silicon/ai/A in living_mob_list)
|
||||
for(var/mob/living/silicon/ai/A in GLOB.living_mob_list)
|
||||
ailist += A
|
||||
if(ailist.len)
|
||||
var/mob/living/silicon/ai/announcer = pick(ailist)
|
||||
@@ -410,7 +410,7 @@
|
||||
/mob/new_player/proc/AnnounceCyborg(var/mob/living/character, var/rank, var/join_message)
|
||||
if(ticker.current_state == GAME_STATE_PLAYING)
|
||||
var/ailist[] = list()
|
||||
for(var/mob/living/silicon/ai/A in living_mob_list)
|
||||
for(var/mob/living/silicon/ai/A in GLOB.living_mob_list)
|
||||
ailist += A
|
||||
if(ailist.len)
|
||||
var/mob/living/silicon/ai/announcer = pick(ailist)
|
||||
@@ -469,7 +469,7 @@
|
||||
activePlayers[job] = 0
|
||||
var/categorized = 0
|
||||
// Only players with the job assigned and AFK for less than 10 minutes count as active
|
||||
for(var/mob/M in player_list) if(M.mind && M.client && M.mind.assigned_role == job.title && M.client.inactivity <= 10 MINUTES)
|
||||
for(var/mob/M in GLOB.player_list) if(M.mind && M.client && M.mind.assigned_role == job.title && M.client.inactivity <= 10 MINUTES)
|
||||
activePlayers[job]++
|
||||
for(var/jobcat in categorizedJobs)
|
||||
var/list/jobs = categorizedJobs[jobcat]["jobs"]
|
||||
@@ -533,10 +533,10 @@
|
||||
if(mind)
|
||||
mind.active = 0 //we wish to transfer the key manually
|
||||
if(mind.assigned_role == "Clown") //give them a clownname if they are a clown
|
||||
new_character.real_name = pick(clown_names) //I hate this being here of all places but unfortunately dna is based on real_name!
|
||||
new_character.real_name = pick(GLOB.clown_names) //I hate this being here of all places but unfortunately dna is based on real_name!
|
||||
new_character.rename_self("clown")
|
||||
else if(mind.assigned_role == "Mime")
|
||||
new_character.real_name = pick(mime_names)
|
||||
new_character.real_name = pick(GLOB.mime_names)
|
||||
new_character.rename_self("mime")
|
||||
mind.original = new_character
|
||||
mind.transfer_to(new_character) //won't transfer key since the mind is not active
|
||||
@@ -558,7 +558,7 @@
|
||||
|
||||
var/datum/language/chosen_language
|
||||
if(client.prefs.language)
|
||||
chosen_language = all_languages[client.prefs.language]
|
||||
chosen_language = GLOB.all_languages[client.prefs.language]
|
||||
if((chosen_language == null && client.prefs.language != "None") || (chosen_language && chosen_language.flags & RESTRICTED))
|
||||
log_runtime(EXCEPTION("[src] had language [client.prefs.language], though they weren't supposed to. Setting to None."), src)
|
||||
client.prefs.language = "None"
|
||||
|
||||
@@ -244,7 +244,7 @@
|
||||
preview_icon.Blend(new /icon(icobase, "groin_[g]"), ICON_OVERLAY)
|
||||
var/head = "head"
|
||||
if(alt_head && current_species.bodyflags & HAS_ALT_HEADS)
|
||||
var/datum/sprite_accessory/alt_heads/H = alt_heads_list[alt_head]
|
||||
var/datum/sprite_accessory/alt_heads/H = GLOB.alt_heads_list[alt_head]
|
||||
if(H.icon_state)
|
||||
head = H.icon_state
|
||||
preview_icon.Blend(new /icon(icobase, "[head]_[g]"), ICON_OVERLAY)
|
||||
@@ -308,7 +308,7 @@
|
||||
|
||||
if(current_species && (current_species.bodyflags & HAS_TAIL_MARKINGS))
|
||||
var/tail_marking = m_styles["tail"]
|
||||
var/datum/sprite_accessory/tail_marking_style = marking_styles_list[tail_marking]
|
||||
var/datum/sprite_accessory/tail_marking_style = GLOB.marking_styles_list[tail_marking]
|
||||
if(tail_marking_style && tail_marking_style.species_allowed)
|
||||
var/icon/t_marking_s = new/icon("icon" = tail_marking_style.icon, "icon_state" = "[tail_marking_style.icon_state]_s")
|
||||
t_marking_s.Blend(m_colours["tail"], ICON_ADD)
|
||||
@@ -320,14 +320,14 @@
|
||||
if(current_species && ((current_species.bodyflags & HAS_HEAD_MARKINGS) || (current_species.bodyflags & HAS_BODY_MARKINGS)))
|
||||
if(current_species.bodyflags & HAS_BODY_MARKINGS) //Body markings.
|
||||
var/body_marking = m_styles["body"]
|
||||
var/datum/sprite_accessory/body_marking_style = marking_styles_list[body_marking]
|
||||
var/datum/sprite_accessory/body_marking_style = GLOB.marking_styles_list[body_marking]
|
||||
if(body_marking_style && body_marking_style.species_allowed)
|
||||
var/icon/b_marking_s = new/icon("icon" = body_marking_style.icon, "icon_state" = "[body_marking_style.icon_state]_s")
|
||||
b_marking_s.Blend(m_colours["body"], ICON_ADD)
|
||||
preview_icon.Blend(b_marking_s, ICON_OVERLAY)
|
||||
if(current_species.bodyflags & HAS_HEAD_MARKINGS) //Head markings.
|
||||
var/head_marking = m_styles["head"]
|
||||
var/datum/sprite_accessory/head_marking_style = marking_styles_list[head_marking]
|
||||
var/datum/sprite_accessory/head_marking_style = GLOB.marking_styles_list[head_marking]
|
||||
if(head_marking_style && head_marking_style.species_allowed)
|
||||
var/icon/h_marking_s = new/icon("icon" = head_marking_style.icon, "icon_state" = "[head_marking_style.icon_state]_s")
|
||||
h_marking_s.Blend(m_colours["head"], ICON_ADD)
|
||||
@@ -341,7 +341,7 @@
|
||||
face_s.Blend(eyes_s, ICON_OVERLAY)
|
||||
|
||||
|
||||
var/datum/sprite_accessory/hair_style = hair_styles_full_list[h_style]
|
||||
var/datum/sprite_accessory/hair_style = GLOB.hair_styles_full_list[h_style]
|
||||
if(hair_style)
|
||||
var/icon/hair_s = new/icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_s")
|
||||
if(current_species.name == "Slime People") // whee I am part of the problem
|
||||
@@ -359,13 +359,13 @@
|
||||
|
||||
//Head Accessory
|
||||
if(current_species && (current_species.bodyflags & HAS_HEAD_ACCESSORY))
|
||||
var/datum/sprite_accessory/head_accessory_style = head_accessory_styles_list[ha_style]
|
||||
var/datum/sprite_accessory/head_accessory_style = GLOB.head_accessory_styles_list[ha_style]
|
||||
if(head_accessory_style && head_accessory_style.species_allowed)
|
||||
var/icon/head_accessory_s = new/icon("icon" = head_accessory_style.icon, "icon_state" = "[head_accessory_style.icon_state]_s")
|
||||
head_accessory_s.Blend(hacc_colour, ICON_ADD)
|
||||
face_s.Blend(head_accessory_s, ICON_OVERLAY)
|
||||
|
||||
var/datum/sprite_accessory/facial_hair_style = facial_hair_styles_list[f_style]
|
||||
var/datum/sprite_accessory/facial_hair_style = GLOB.facial_hair_styles_list[f_style]
|
||||
if(facial_hair_style && facial_hair_style.species_allowed)
|
||||
var/icon/facial_s = new/icon("icon" = facial_hair_style.icon, "icon_state" = "[facial_hair_style.icon_state]_s")
|
||||
if(current_species.name == "Slime People") // whee I am part of the problem
|
||||
@@ -383,19 +383,19 @@
|
||||
|
||||
var/icon/underwear_s = null
|
||||
if(underwear && (current_species.clothing_flags & HAS_UNDERWEAR))
|
||||
var/datum/sprite_accessory/underwear/U = underwear_list[underwear]
|
||||
var/datum/sprite_accessory/underwear/U = GLOB.underwear_list[underwear]
|
||||
if(U)
|
||||
underwear_s = new/icon(U.icon, "uw_[U.icon_state]_s", ICON_OVERLAY)
|
||||
|
||||
var/icon/undershirt_s = null
|
||||
if(undershirt && (current_species.clothing_flags & HAS_UNDERSHIRT))
|
||||
var/datum/sprite_accessory/undershirt/U2 = undershirt_list[undershirt]
|
||||
var/datum/sprite_accessory/undershirt/U2 = GLOB.undershirt_list[undershirt]
|
||||
if(U2)
|
||||
undershirt_s = new/icon(U2.icon, "us_[U2.icon_state]_s", ICON_OVERLAY)
|
||||
|
||||
var/icon/socks_s = null
|
||||
if(socks && (current_species.clothing_flags & HAS_SOCKS))
|
||||
var/datum/sprite_accessory/socks/U3 = socks_list[socks]
|
||||
var/datum/sprite_accessory/socks/U3 = GLOB.socks_list[socks]
|
||||
if(U3)
|
||||
socks_s = new/icon(U3.icon, "sk_[U3.icon_state]_s", ICON_OVERLAY)
|
||||
|
||||
|
||||
@@ -137,11 +137,11 @@
|
||||
/mob/proc/parse_language(var/message)
|
||||
var/prefix = copytext(message, 1, 2)
|
||||
if(length(message) >= 1 && prefix == "!")
|
||||
return all_languages["Noise"]
|
||||
return GLOB.all_languages["Noise"]
|
||||
|
||||
if(length(message) >= 2)
|
||||
var/language_prefix = trim_right(lowertext(copytext(message, 1 ,4)))
|
||||
var/datum/language/L = language_keys[language_prefix]
|
||||
var/datum/language/L = GLOB.language_keys[language_prefix]
|
||||
if(can_speak_language(L))
|
||||
return L
|
||||
|
||||
|
||||
Reference in New Issue
Block a user