/obj/structure/signpost icon = 'icons/obj/stationobjs.dmi' icon_state = "signpost" anchored = 1 density = 1 attackby(obj/item/weapon/W as obj, mob/user as mob) return attack_hand(user) attack_hand(mob/user as mob) switch(alert("Travel back to ss13?",,"Yes","No")) if("Yes") if(user.z != src.z) return user.loc.loc.Exited(user) user.loc = pick(latejoin) if("No") return /obj/effect/mark var/mark = "" icon = 'icons/misc/mark.dmi' icon_state = "blank" anchored = 1 layer = 99 mouse_opacity = 0 unacidable = 1//Just to be sure. /obj/effect/beam name = "beam" density = 0 unacidable = 1//Just to be sure. var/def_zone flags = PROXMOVE pass_flags = PASSTABLE /obj/effect/begin name = "begin" icon = 'icons/obj/stationobjs.dmi' icon_state = "begin" anchored = 1.0 unacidable = 1 /* * This item is completely unused, but removing it will break something in R&D and Radio code causing PDA and Ninja code to fail on compile */ /obj/effect/datacore name = "datacore" var/medical[] = list() var/general[] = list() var/security[] = list() //This list tracks characters spawned in the world and cannot be modified in-game. Currently referenced by respawn_character(). var/locked[] = list() /obj/effect/datacore/proc/get_manifest(monochrome, OOC) var/list/heads = new() var/list/sec = new() var/list/eng = new() var/list/med = new() var/list/sci = new() var/list/civ = new() var/list/bot = new() var/list/misc = new() var/list/isactive = new() var/dat = {" "} var/even = 0 // sort mobs for(var/datum/data/record/t in data_core.general) var/name = t.fields["name"] var/rank = t.fields["rank"] var/real_rank = make_list_rank(t.fields["real_rank"]) if(OOC) var/active = 0 for(var/mob/M in player_list) if(M.real_name == name && M.client && M.client.inactivity <= 10 * 60 * 10) active = 1 break isactive[name] = active ? "Active" : "Inactive" else isactive[name] = t.fields["p_stat"] //world << "[name]: [rank]" //cael - to prevent multiple appearances of a player/job combination, add a continue after each line var/department = 0 if(real_rank in command_positions) heads[name] = rank department = 1 if(real_rank in security_positions) sec[name] = rank department = 1 if(real_rank in engineering_positions) eng[name] = rank department = 1 if(real_rank in medical_positions) med[name] = rank department = 1 if(real_rank in science_positions) sci[name] = rank department = 1 if(real_rank in civilian_positions) civ[name] = rank department = 1 if(real_rank in nonhuman_positions) bot[name] = rank department = 1 if(!department && !(name in heads)) misc[name] = rank if(heads.len > 0) dat += "" for(name in heads) dat += "" even = !even if(sec.len > 0) dat += "" for(name in sec) dat += "" even = !even if(eng.len > 0) dat += "" for(name in eng) dat += "" even = !even if(med.len > 0) dat += "" for(name in med) dat += "" even = !even if(sci.len > 0) dat += "" for(name in sci) dat += "" even = !even if(civ.len > 0) dat += "" for(name in civ) dat += "" even = !even // in case somebody is insane and added them to the manifest, why not if(bot.len > 0) dat += "" for(name in bot) dat += "" even = !even // misc guys if(misc.len > 0) dat += "" for(name in misc) dat += "" even = !even dat += "
NameRankActivity
Heads
[name][heads[name]][isactive[name]]
Security
[name][sec[name]][isactive[name]]
Engineering
[name][eng[name]][isactive[name]]
Medical
[name][med[name]][isactive[name]]
Science
[name][sci[name]][isactive[name]]
Civilian
[name][civ[name]][isactive[name]]
Silicon
[name][bot[name]][isactive[name]]
Miscellaneous
[name][misc[name]][isactive[name]]
" dat = replacetext(dat, "\n", "") // so it can be placed on paper correctly dat = replacetext(dat, "\t", "") return dat /var/list/acting_rank_prefixes = list("acting", "temporary", "interim", "provisional") /proc/make_list_rank(rank) for(var/prefix in acting_rank_prefixes) if(findtext(rank, "[prefix] ", 1, 2+length(prefix))) return copytext(rank, 2+length(prefix)) return rank /* We can't just insert in HTML into the nanoUI so we need the raw data to play with. Instead of creating this list over and over when someone leaves their PDA open to the page we'll only update it when it changes. The PDA_Manifest global list is zeroed out upon any change using /obj/effect/datacore/proc/manifest_inject( ), or manifest_insert( ) */ var/global/list/PDA_Manifest = list() var/global/ManifestJSON /obj/effect/datacore/proc/get_manifest_json() if(PDA_Manifest.len) return var/heads[0] var/sec[0] var/eng[0] var/med[0] var/sci[0] var/civ[0] var/bot[0] var/misc[0] for(var/datum/data/record/t in data_core.general) var/name = sanitize(t.fields["name"]) var/rank = sanitize(t.fields["rank"]) var/real_rank = make_list_rank(t.fields["real_rank"]) var/isactive = t.fields["p_stat"] var/department = 0 var/depthead = 0 // Department Heads will be placed at the top of their lists. if(real_rank in command_positions) heads[++heads.len] = list("name" = name, "rank" = rank, "active" = isactive) department = 1 depthead = 1 if(rank=="Captain" && heads.len != 1) heads.Swap(1,heads.len) if(real_rank in security_positions) sec[++sec.len] = list("name" = name, "rank" = rank, "active" = isactive) department = 1 if(depthead && sec.len != 1) sec.Swap(1,sec.len) if(real_rank in engineering_positions) eng[++eng.len] = list("name" = name, "rank" = rank, "active" = isactive) department = 1 if(depthead && eng.len != 1) eng.Swap(1,eng.len) if(real_rank in medical_positions) med[++med.len] = list("name" = name, "rank" = rank, "active" = isactive) department = 1 if(depthead && med.len != 1) med.Swap(1,med.len) if(real_rank in science_positions) sci[++sci.len] = list("name" = name, "rank" = rank, "active" = isactive) department = 1 if(depthead && sci.len != 1) sci.Swap(1,sci.len) if(real_rank in civilian_positions) civ[++civ.len] = list("name" = name, "rank" = rank, "active" = isactive) department = 1 if(depthead && civ.len != 1) civ.Swap(1,civ.len) if(real_rank in nonhuman_positions) bot[++bot.len] = list("name" = name, "rank" = rank, "active" = isactive) department = 1 if(!department && !(name in heads)) misc[++misc.len] = list("name" = name, "rank" = rank, "active" = isactive) PDA_Manifest = list(\ "heads" = heads,\ "sec" = sec,\ "eng" = eng,\ "med" = med,\ "sci" = sci,\ "civ" = civ,\ "bot" = bot,\ "misc" = misc\ ) ManifestJSON = list2json(PDA_Manifest) return /obj/effect/laser name = "laser" desc = "IT BURNS!!!" icon = 'icons/obj/projectiles.dmi' var/damage = 0.0 var/range = 10.0 /obj/effect/list_container name = "list container" /obj/effect/list_container/mobl name = "mobl" var/master = null var/list/container = list( ) /obj/effect/projection name = "Projection" desc = "This looks like a projection of something." anchored = 1.0 /obj/effect/shut_controller name = "shut controller" var/moving = null var/list/parts = list( ) /obj/structure/showcase name = "Showcase" icon = 'icons/obj/stationobjs.dmi' icon_state = "showcase_1" desc = "A stand with the empty body of a cyborg bolted to it." density = 1 anchored = 1 unacidable = 1//temporary until I decide whether the borg can be removed. -veyveyr /obj/item/mouse_drag_pointer = MOUSE_ACTIVE_POINTER /obj/item/weapon/beach_ball icon = 'icons/misc/beach.dmi' icon_state = "ball" name = "beach ball" item_state = "beachball" density = 0 anchored = 0 w_class = 4 force = 0.0 throwforce = 0.0 throw_speed = 1 throw_range = 20 flags = CONDUCT afterattack(atom/target as mob|obj|turf|area, mob/user as mob) user.drop_item() src.throw_at(target, throw_range, throw_speed, user) /obj/effect/stop var/victim = null icon_state = "empty" name = "Geas" desc = "You can't resist." // name = "" /obj/effect/spawner name = "object spawner"