April sync (#360)

* Maps and things no code/icons

* helpers defines globalvars

* Onclick world.dm orphaned_procs

* subsystems

Round vote and shuttle autocall done here too

* datums

* Game folder

* Admin - chatter modules

* clothing - mining

* modular computers - zambies

* client

* mob level 1

* mob stage 2 + simple_animal

* silicons n brains

* mob stage 3 + Alien/Monkey

* human mobs

* icons updated

* some sounds

* emitter y u no commit

* update tgstation.dme

* compile fixes

* travis fixes

Also removes Fast digest mode, because reasons.

* tweaks for travis Mentors are broke again

Also fixes Sizeray guns

* oxygen loss fix for vore code.

* removes unused code

* some code updates

* bulk fixes

* further fixes

* outside things

* whoops.

* Maint bar ported

* GLOBs.
This commit is contained in:
Poojawa
2017-04-13 23:37:00 -05:00
committed by GitHub
parent cdc32c98fa
commit 7e9b96a00f
1322 changed files with 174827 additions and 23888 deletions
@@ -616,6 +616,14 @@
build_path = /obj/item/weapon/restraints/handcuffs
category = list("hacked", "Security")
/datum/design/receiver
name = "Modular Receiver"
id = "reciever"
build_type = AUTOLATHE
materials = list(MAT_METAL = 15000)
build_path = /obj/item/weaponcrafting/receiver
category = list("hacked", "Security")
/datum/design/shotgun_slug
name = "Shotgun slug"
id = "shotgun_slug"
@@ -90,14 +90,14 @@
build_path = /obj/item/weapon/circuitboard/machine/quantumpad
category = list ("Teleportation Machinery")
/datum/design/board/telepad
/*/datum/design/board/telepad
name = "Machine Design (Telepad Board)"
desc = "The circuit board for a telescience telepad."
id = "telepad"
req_tech = list("programming" = 4, "bluespace" = 5, "plasmatech" = 4, "engineering" = 4)
build_path = /obj/item/weapon/circuitboard/machine/telesci_pad
category = list ("Teleportation Machinery")
*/
/datum/design/board/teleconsole
name = "Computer Design (Teleporter Console)"
desc = "Allows for the construction of circuit boards used to build a teleporter control console."
@@ -106,14 +106,14 @@
build_path = /obj/item/weapon/circuitboard/computer/teleporter
category = list("Teleportation Machinery")
/datum/design/board/telesci_console
/* /datum/design/board/telesci_console
name = "Computer Design (Telepad Control Console Board)"
desc = "Allows for the construction of circuit boards used to build a telescience console."
id = "telesci_console"
req_tech = list("programming" = 3, "bluespace" = 3, "plasmatech" = 4)
build_path = /obj/item/weapon/circuitboard/computer/telesci_console
category = list("Teleportation Machinery")
*/
/datum/design/board/sleeper
name = "Machine Design (Sleeper Board)"
desc = "The circuit board for a sleeper."
@@ -718,6 +718,16 @@
construction_time = 120
category = list("Cyborg Upgrade Modules")
/datum/design/boris_ai_controller
name = "B.O.R.I.S. AI-Cyborg Remote Control Module"
id = "borg_ai_control"
build_type = MECHFAB
build_path = /obj/item/borg/upgrade/ai
materials = list(MAT_METAL = 1200, MAT_GLASS = 1500, MAT_GOLD = 200)
req_tech = list("programming" = 4, "magnets" = 4, "engineering" = 4)
construction_time = 50
category = list("Misc")
//Misc
/datum/design/mecha_tracking
name = "Exosuit Tracking Beacon"
@@ -759,7 +769,6 @@
construction_time = 100
build_path = /obj/item/device/assembly/flash/handheld
category = list("Misc")
/*
/datum/design/flightsuit //Multi step build process/redo WIP
name = "Flight Suit"
@@ -771,7 +780,6 @@
construction_time = 250
category = list("Misc")
req_tech = list("magnets" = 2, "combat" = 2, "plasmatech" = 2, "materials" = 4, "engineering" = 3, "powerstorage" = 2)
*/
/datum/design/flightpack
name = "Flight Pack"
@@ -784,7 +792,6 @@
category = list("Misc")
req_tech = list("magnets" = 4, "combat" = 3, "plasmatech" = 4, "materials" = 5, "engineering" = 4, "powerstorage" = 4)
/*
/datum/design/flightshoes
name = "Flight Shoes"
desc = "Flight shoes, attachable to a flight suit to provide additional functions."
@@ -795,4 +802,4 @@
construction_time = 100
category = list("Misc")
req_tech = list("magnets" = 2, "combat" = 2, "plasmatech" = 3, "materials" = 3, "engineering" = 2, "powerstorage" = 2)
*/
*/
@@ -177,16 +177,6 @@
build_path = /obj/item/weapon/gun/energy/wormhole_projector
category = list("Weapons")
/datum/design/reciever
name = "Modular Receiver"
desc = "A prototype modular receiver and trigger assembly for a variety of firearms."
id = "reciever"
req_tech = list("combat" = 4, "materials" = 4)
build_type = PROTOLATHE
materials = list(MAT_METAL = 6500, MAT_SILVER = 500)
build_path = /obj/item/weaponcrafting/reciever
category = list("Weapons")
//WT550 Mags
/datum/design/mag_oldsmg
+5 -5
View File
@@ -84,8 +84,8 @@
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/experimentor(null)
B.apply_default_parts(src)
trackedIan = locate(/mob/living/simple_animal/pet/dog/corgi/Ian) in mob_list
trackedRuntime = locate(/mob/living/simple_animal/pet/cat/Runtime) in mob_list
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
SetTypeReactions()
/obj/item/weapon/circuitboard/machine/experimentor
@@ -556,7 +556,7 @@
//~~~~~~~~Admin logging proc, aka the Powergamer Alarm~~~~~~~~
/obj/machinery/r_n_d/experimentor/proc/warn_admins(mob/user, ReactionName)
var/turf/T = get_turf(src)
message_admins("Experimentor reaction: [ReactionName] generated by [key_name_admin(user)](<A HREF='?_src_=holder;adminmoreinfo=\ref[user]'>?</A>) (<A HREF='?_src_=holder;adminplayerobservefollow=\ref[user]'>FLW</A>) at ([T.x],[T.y],[T.z] - <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[T.x];Y=[T.y];Z=[T.z]'>JMP</a>)",0,1)
message_admins("Experimentor reaction: [ReactionName] generated by [ADMIN_LOOKUPFLW(user)] at [ADMIN_COORDJMP(T)]",0,1)
log_game("Experimentor reaction: [ReactionName] generated by [key_name(user)] in ([T.x],[T.y],[T.z])")
#undef SCANTYPE_POKE
@@ -638,7 +638,7 @@
/obj/item/weapon/relic/proc/flash(mob/user)
playsound(src.loc, "sparks", rand(25,50), 1)
var/obj/item/weapon/grenade/flashbang/CB = new/obj/item/weapon/grenade/flashbang(get_turf(user))
var/obj/item/weapon/grenade/flashbang/CB = new/obj/item/weapon/grenade/flashbang(user.loc)
CB.prime()
warn_admins(user, "Flash")
@@ -703,6 +703,6 @@
var/turf/T = get_turf(src)
var/log_msg = "[RelicType] relic used by [key_name(user)] in ([T.x],[T.y],[T.z])"
if(priority) //For truly dangerous relics that may need an admin's attention. BWOINK!
message_admins("[RelicType] relic activated by [key_name_admin(user)](<A HREF='?_src_=holder;adminmoreinfo=\ref[user]'>?</A>) (<A HREF='?_src_=holder;adminplayerobservefollow=\ref[user]'>FLW</A>) in ([T.x],[T.y],[T.z] - <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[T.x];Y=[T.y];Z=[T.z]'>JMP</a>)",0,1)
message_admins("[RelicType] relic activated by [ADMIN_LOOKUPFLW(user)] in [ADMIN_COORDJMP(T)]",0,1)
log_game(log_msg)
investigate_log(log_msg, "experimentor")
+3 -3
View File
@@ -1,4 +1,4 @@
var/global/list/obj/machinery/message_server/message_servers = list()
GLOBAL_LIST_INIT(message_servers, list())
/datum/data_pda_msg
var/recipient = "Unspecified" //name of the person
@@ -79,14 +79,14 @@ var/global/list/obj/machinery/message_server/message_servers = list()
var/decryptkey = "password"
/obj/machinery/message_server/New()
message_servers += src
GLOB.message_servers += src
decryptkey = GenerateKey()
send_pda_message("System Administrator", "system", "This is an automated message. The messaging system is functioning correctly.")
..()
return
/obj/machinery/message_server/Destroy()
message_servers -= src
GLOB.message_servers -= src
return ..()
/obj/machinery/message_server/proc/GenerateKey()
+9 -9
View File
@@ -47,7 +47,7 @@ won't update every console in existence) but it's more of a hassle to do. Also,
var/sync = 1 //If sync = 0, it doesn't show up on Server Control Console
var/first_use = 1 //If first_use = 1, it will try to auto-connect with nearby devices
req_access = list(access_tox) //Data and setting manipulation requires scientist access.
req_access = list(GLOB.access_tox) //Data and setting manipulation requires scientist access.
var/selected_category
var/list/datum/design/matching_designs = list() //for the search function
@@ -55,18 +55,18 @@ won't update every console in existence) but it's more of a hassle to do. Also,
/proc/CallTechName(ID) //A simple helper proc to find the name of a tech with a given ID.
if(tech_list[ID])
var/datum/tech/tech = tech_list[ID]
if(GLOB.tech_list[ID])
var/datum/tech/tech = GLOB.tech_list[ID]
return tech.name
return "ERROR: Report This"
/proc/CallMaterialName(ID)
if (copytext(ID, 1, 2) == "$" && materials_list[ID])
var/datum/material/material = materials_list[ID]
if (copytext(ID, 1, 2) == "$" && GLOB.materials_list[ID])
var/datum/material/material = GLOB.materials_list[ID]
return material.name
else if(chemical_reagents_list[ID])
var/datum/reagent/reagent = chemical_reagents_list[ID]
else if(GLOB.chemical_reagents_list[ID])
var/datum/reagent/reagent = GLOB.chemical_reagents_list[ID]
return reagent.name
return "ERROR: Report This"
@@ -90,7 +90,7 @@ won't update every console in existence) but it's more of a hassle to do. Also,
//Have it automatically push research to the centcom server so wild griffins can't fuck up R&D's work --NEO
/obj/machinery/computer/rdconsole/proc/griefProtection()
for(var/obj/machinery/r_n_d/server/centcom/C in machines)
for(var/obj/machinery/r_n_d/server/centcom/C in GLOB.machines)
for(var/v in files.known_tech)
var/datum/tech/T = files.known_tech[v]
C.files.AddTech2Known(T)
@@ -350,7 +350,7 @@ won't update every console in existence) but it's more of a hassle to do. Also,
griefProtection() //Putting this here because I dont trust the sync process
spawn(30)
if(src)
for(var/obj/machinery/r_n_d/server/S in machines)
for(var/obj/machinery/r_n_d/server/S in GLOB.machines)
var/server_processed = 0
if(S.disabled)
continue
+7 -7
View File
@@ -12,7 +12,7 @@
var/heat_gen = 100
var/heating_power = 40000
var/delay = 10
req_access = list(access_rd) //Only the R&D can change server settings.
req_access = list(GLOB.access_rd) //Only the R&D can change server settings.
/obj/machinery/r_n_d/server/New()
..()
@@ -90,7 +90,7 @@
//Backup files to centcom to help admins recover data after greifer attacks
/obj/machinery/r_n_d/server/proc/griefProtection()
for(var/obj/machinery/r_n_d/server/centcom/C in machines)
for(var/obj/machinery/r_n_d/server/centcom/C in GLOB.machines)
for(var/v in files.known_tech)
var/datum/tech/T = files.known_tech[v]
C.files.AddTech2Known(T)
@@ -143,7 +143,7 @@
/proc/fix_noid_research_servers()
var/list/no_id_servers = list()
var/list/server_ids = list()
for(var/obj/machinery/r_n_d/server/S in machines)
for(var/obj/machinery/r_n_d/server/S in GLOB.machines)
switch(S.server_id)
if(-1)
continue
@@ -195,20 +195,20 @@
temp_server = null
consoles = list()
servers = list()
for(var/obj/machinery/r_n_d/server/S in machines)
for(var/obj/machinery/r_n_d/server/S in GLOB.machines)
if(S.server_id == text2num(href_list["access"]) || S.server_id == text2num(href_list["data"]) || S.server_id == text2num(href_list["transfer"]))
temp_server = S
break
if(href_list["access"])
screen = 1
for(var/obj/machinery/computer/rdconsole/C in machines)
for(var/obj/machinery/computer/rdconsole/C in GLOB.machines)
if(C.sync)
consoles += C
else if(href_list["data"])
screen = 2
else if(href_list["transfer"])
screen = 3
for(var/obj/machinery/r_n_d/server/S in machines)
for(var/obj/machinery/r_n_d/server/S in GLOB.machines)
if(S == src)
continue
servers += S
@@ -256,7 +256,7 @@
if(0) //Main Menu
dat += "Connected Servers:<BR><BR>"
for(var/obj/machinery/r_n_d/server/S in machines)
for(var/obj/machinery/r_n_d/server/S in GLOB.machines)
if(istype(S, /obj/machinery/r_n_d/server/centcom) && !badmin)
continue
dat += "[S.name] || "
@@ -104,7 +104,7 @@
C.client.images -= chunk.obscured
C.remote_control = null
C.unset_machine()
src.Remove(C)
Remove(C)
/datum/action/innate/slime_place
@@ -118,7 +118,7 @@
var/mob/camera/aiEye/remote/xenobio/remote_eye = C.remote_control
var/obj/machinery/computer/camera_advanced/xenobio/X = target
if(cameranet.checkTurfVis(remote_eye.loc))
if(GLOB.cameranet.checkTurfVis(remote_eye.loc))
for(var/mob/living/simple_animal/slime/S in X.stored_slimes)
S.loc = remote_eye.loc
S.visible_message("[S] warps in!")
@@ -137,7 +137,7 @@
var/mob/camera/aiEye/remote/xenobio/remote_eye = C.remote_control
var/obj/machinery/computer/camera_advanced/xenobio/X = target
if(cameranet.checkTurfVis(remote_eye.loc))
if(GLOB.cameranet.checkTurfVis(remote_eye.loc))
for(var/mob/living/simple_animal/slime/S in remote_eye.loc)
if(X.stored_slimes.len >= X.max_slimes)
break
@@ -162,7 +162,7 @@
var/mob/camera/aiEye/remote/xenobio/remote_eye = C.remote_control
var/obj/machinery/computer/camera_advanced/xenobio/X = target
if(cameranet.checkTurfVis(remote_eye.loc))
if(GLOB.cameranet.checkTurfVis(remote_eye.loc))
if(X.monkeys >= 1)
var/mob/living/carbon/monkey/food = new /mob/living/carbon/monkey(remote_eye.loc)
food.LAssailant = C
@@ -183,7 +183,7 @@
var/mob/camera/aiEye/remote/xenobio/remote_eye = C.remote_control
var/obj/machinery/computer/camera_advanced/xenobio/X = target
if(cameranet.checkTurfVis(remote_eye.loc))
if(GLOB.cameranet.checkTurfVis(remote_eye.loc))
for(var/mob/living/carbon/monkey/M in remote_eye.loc)
if(M.stat)
M.visible_message("[M] vanishes as they are reclaimed for recycling!")
@@ -177,12 +177,12 @@
return ..()
var/mob/living/simple_animal/SM = M
if(SM.sentience_type != sentience_type)
to_chat(user, "<span class='warning'>The potion won't work on [SM].</span>")
to_chat(user, "<span class='warning'>[src] won't work on [SM].</span>")
return ..()
to_chat(user, "<span class='notice'>You offer the sentience potion to [SM]...</span>")
to_chat(user, "<span class='notice'>You offer [src] to [SM]...</span>")
being_used = 1
var/list/candidates = pollCandidatesForMob("Do you want to play as [SM.name]?", ROLE_ALIEN, null, ROLE_ALIEN, 50, SM, POLL_IGNORE_SENTIENCE_POTION) // see poll_ignore.dm
@@ -190,13 +190,11 @@
if(candidates.len)
theghost = pick(candidates)
SM.key = theghost.key
SM.languages_spoken |= HUMAN
SM.languages_understood |= HUMAN
SM.mind.enslave_mind_to_creator(user)
SM.sentience_act()
to_chat(SM, "<span class='warning'>All at once it makes sense: you know what you are and who you are! Self awareness is yours!</span>")
to_chat(SM, "<span class='userdanger'>You are grateful to be self aware and owe [user] a great debt. Serve [user], and assist [user.p_them()] in completing [user.p_their()] goals at any cost.</span>")
to_chat(user, "<span class='notice'>[SM] accepts the potion and suddenly becomes attentive and aware. It worked!</span>")
to_chat(user, "<span class='notice'>[SM] accepts [src] and suddenly becomes attentive and aware. It worked!</span>")
qdel(src)
else
to_chat(user, "<span class='notice'>[SM] looks interested for a moment, but then looks back down. Maybe you should try again later.</span>")
@@ -238,8 +236,6 @@
user.mind.transfer_to(SM)
SM.languages_spoken = user.languages_spoken
SM.languages_understood = user.languages_understood
SM.faction = user.faction.Copy()
SM.sentience_act() //Same deal here as with sentience
user.death()
@@ -523,7 +519,7 @@
var/mob/living/carbon/human/G = new /mob/living/carbon/human
G.set_species(/datum/species/golem/adamantine)
G.set_cloned_appearance()
G.real_name = "Adamantine Golem ([rand(1, 1000)])"
G.real_name = G.dna.species.random_name()
G.name = G.real_name
G.dna.unique_enzymes = G.dna.generate_unique_enzymes()
G.dna.species.auto_equip(G)
@@ -560,7 +556,7 @@
/obj/effect/timestop/New()
..()
for(var/mob/living/M in player_list)
for(var/mob/living/M in GLOB.player_list)
for(var/obj/effect/proc_holder/spell/aoe_turf/conjure/timestop/T in M.mind.spell_list) //People who can stop time are immune to timestop
immune |= M
timestop()