diff --git a/code/ATMOSPHERICS/he_pipes.dm b/code/ATMOSPHERICS/he_pipes.dm new file mode 100644 index 0000000000..11a879b248 --- /dev/null +++ b/code/ATMOSPHERICS/he_pipes.dm @@ -0,0 +1,83 @@ + +obj/machinery/atmospherics/pipe/simple/heat_exchanging + icon = 'heat.dmi' + icon_state = "intact" + level = 2 + var/initialize_directions_he + + minimum_temperature_difference = 20 + thermal_conductivity = WINDOW_HEAT_TRANSFER_COEFFICIENT + + + initialize() + normalize_dir() + var/node1_dir + var/node2_dir + + for(var/direction in cardinal) + if(direction&initialize_directions_he) + if (!node1_dir) + node1_dir = direction + else if (!node2_dir) + node2_dir = direction + + for(var/obj/machinery/atmospherics/pipe/simple/heat_exchanging/target in get_step(src,node1_dir)) + if(target.initialize_directions_he & get_dir(target,src)) + node1 = target + break + for(var/obj/machinery/atmospherics/pipe/simple/heat_exchanging/target in get_step(src,node2_dir)) + if(target.initialize_directions_he & get_dir(target,src)) + node2 = target + break + update_icon() + return + + + process() + if(!parent) + ..() + else + var/environment_temperature = 0 + if(istype(loc, /turf/simulated/)) + if(loc:blocks_air) + environment_temperature = loc:temperature + else + var/datum/gas_mixture/environment = loc.return_air() + environment_temperature = environment.temperature + else + environment_temperature = loc:temperature + var/datum/gas_mixture/pipe_air = return_air() + if(abs(environment_temperature-pipe_air.temperature) > minimum_temperature_difference) + parent.temperature_interact(loc, volume, thermal_conductivity) + + + +obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction + icon = 'junction.dmi' + icon_state = "intact" + level = 2 + minimum_temperature_difference = 300 + thermal_conductivity = WALL_HEAT_TRANSFER_COEFFICIENT + + update_icon() + if(node1&&node2) + icon_state = "intact" + else + var/have_node1 = node1?1:0 + var/have_node2 = node2?1:0 + icon_state = "exposed[have_node1][have_node2]" + if(!node1&&!node2) + del(src) + + initialize() + for(var/obj/machinery/atmospherics/target in get_step(src,initialize_directions)) + if(target.initialize_directions & get_dir(target,src)) + node1 = target + break + for(var/obj/machinery/atmospherics/pipe/simple/heat_exchanging/target in get_step(src,initialize_directions_he)) + if(target.initialize_directions_he & get_dir(target,src)) + node2 = target + break + + update_icon() + return diff --git a/code/ATMOSPHERICS/pipes.dm b/code/ATMOSPHERICS/pipes.dm index 909d75ae30..ecc8928498 100644 --- a/code/ATMOSPHERICS/pipes.dm +++ b/code/ATMOSPHERICS/pipes.dm @@ -302,68 +302,6 @@ obj/machinery/atmospherics/pipe level = 2 - simple/heat_exchanging/junction - icon = 'junction.dmi' - icon_state = "intact" - level = 2 - minimum_temperature_difference = 300 - thermal_conductivity = WALL_HEAT_TRANSFER_COEFFICIENT - - update_icon() - if(node1&&node2) - icon_state = "intact" - else - var/have_node1 = node1?1:0 - var/have_node2 = node2?1:0 - icon_state = "exposed[have_node1][have_node2]" - if(!node1&&!node2) - del(src) - - initialize() - for(var/obj/machinery/atmospherics/target in get_step(src,initialize_directions)) - if(target.initialize_directions & get_dir(target,src)) - node1 = target - break - for(var/obj/machinery/atmospherics/pipe/simple/heat_exchanging/target in get_step(src,initialize_directions_he)) - if(target.initialize_directions_he & get_dir(target,src)) - node2 = target - break - - update_icon() - - simple/heat_exchanging - icon = 'heat.dmi' - icon_state = "intact" - level = 2 - var/initialize_directions_he - - minimum_temperature_difference = 20 - thermal_conductivity = WINDOW_HEAT_TRANSFER_COEFFICIENT - - initialize() - normalize_dir() - var/node1_dir - var/node2_dir - - for(var/direction in cardinal) - if(direction&initialize_directions_he) - if (!node1_dir) - node1_dir = direction - else if (!node2_dir) - node2_dir = direction - - for(var/obj/machinery/atmospherics/pipe/simple/heat_exchanging/target in get_step(src,node1_dir)) - if(target.initialize_directions_he & get_dir(target,src)) - node1 = target - break - for(var/obj/machinery/atmospherics/pipe/simple/heat_exchanging/target in get_step(src,node2_dir)) - if(target.initialize_directions_he & get_dir(target,src)) - node2 = target - break - - update_icon() - - tank icon = 'pipe_tank.dmi' icon_state = "intact" diff --git a/code/datums/diseases/robotic_transformation.dm b/code/datums/diseases/robotic_transformation.dm index b1f9346307..51f4251ac0 100644 --- a/code/datums/diseases/robotic_transformation.dm +++ b/code/datums/diseases/robotic_transformation.dm @@ -57,5 +57,8 @@ gibs(T) src.cure(0) gibbed = 1 - affected_mob:Robotize() + if(!jobban_isbanned(src, "Cyborg")) + affected_mob:Robotize() + else + affected_mob.death(1) diff --git a/code/game/algorithm.dm b/code/game/algorithm.dm index d49bdd90d5..9169d04965 100644 --- a/code/game/algorithm.dm +++ b/code/game/algorithm.dm @@ -11,8 +11,6 @@ Starting up. [time2text(world.timeofday, "hh:mm.ss")] jobban_loadbanfile() jobban_updatelegacybans() -// goon_loadfile() Somehow I doubt we need this anymore -// beta_tester_loadfile() LoadBans() process_teleport_locs() //Sets up the wizard teleport locations process_ghost_teleport_locs() //Sets up ghost teleport locations. @@ -20,33 +18,19 @@ Starting up. [time2text(world.timeofday, "hh:mm.ss")] if (config.kick_inactive) spawn(30) - //EXPERIMENTAL - Optimize() - //EXPERIMENTAL + KickInactiveClients() - -/// EXPERIMENTAL STUFF -var/opt_inactive = null -/world/proc/Optimize() - if(!opt_inactive) opt_inactive = world.timeofday - - if(world.timeofday - opt_inactive >= 600) - KickInactiveClients() - opt_inactive = world.timeofday - - spawn(100) Optimize() - /world/proc/KickInactiveClients() for(var/client/C) - if(!C.holder && ((C.inactivity/10)/60) >= 10) // Used to be 15 -- TLE - //C << "\red You have been inactive for more than 10 minutes and have been disconnected." + if(!C.holder && ((C.inactivity/10)/60) >= 10) if(C.mob) if(!istype(C.mob, /mob/dead/)) log_access("AFK: [key_name(C)]") C << "\red You have been inactive for more than 10 minutes and have been disconnected." C.mob.logged_in = 0 del(C) + spawn(3000) KickInactiveClients()//more or less five minutes /// EXPERIMENTAL STUFF diff --git a/code/game/jobs/jobprocs.dm b/code/game/jobs/jobprocs.dm index 429e39f381..59b0efb46e 100644 --- a/code/game/jobs/jobprocs.dm +++ b/code/game/jobs/jobprocs.dm @@ -105,12 +105,15 @@ for (var/i = 1 to occupation_eligible[occ]) vacancies += occ - while (unassigned.len && vacancies.len) - var/mob/new_player/candidate = pick_n_take(unassigned) - var/occupation = pick_n_take(vacancies) - candidate.mind.assigned_role = occupation + for(var/mob/new_player/candidate in unassigned) + if(!unassigned.len || !vacancies.len) break + var/occupation = pick(vacancies) + if(!jobban_isbanned(candidate, occupation)) + candidate.mind.assigned_role = occupation + unassigned -= candidate + vacancies -= occupation - for (var/mob/new_player/player in unassigned) + for(var/mob/new_player/player in unassigned) if (unassigned.len == 0) break player.mind.assigned_role = pick(assistant_occupations) diff --git a/code/game/objects/devices/flash.dm b/code/game/objects/devices/flash.dm index 48134601ef..95c09cb44d 100644 --- a/code/game/objects/devices/flash.dm +++ b/code/game/objects/devices/flash.dm @@ -61,6 +61,7 @@ flick("blspell", animation) sleep(5) del(animation) + user.weakened = max(user.weakened, 10) if(!flashfail) diff --git a/code/game/objects/items/clothing/powerarmor.dm b/code/game/objects/items/clothing/powerarmor.dm index 92b4655b83..02e5bf74eb 100644 --- a/code/game/objects/items/clothing/powerarmor.dm +++ b/code/game/objects/items/clothing/powerarmor.dm @@ -1,3 +1,6 @@ +/obj/item/clothing/suit/armor/powered +/obj/item/clothing/head/helmet/powered + /obj/item/clothing/suit/powered name = "Powered armor" desc = "Not for rookies." diff --git a/code/game/objects/items/robot_parts.dm b/code/game/objects/items/robot_parts.dm index 026c5764d3..e929121ceb 100644 --- a/code/game/objects/items/robot_parts.dm +++ b/code/game/objects/items/robot_parts.dm @@ -162,6 +162,10 @@ user << "\red Sticking a dead brain into the frame would sort of defeat the purpose." return + if(jobban_isbanned(M.brainmob, "Cyborg")) + user << "\red This MMI does not seem to fit." + return + var/mob/living/silicon/robot/O = new /mob/living/silicon/robot(get_turf(loc)) if(!O) return diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 4b8571fe2c..d3f2e79f46 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -6,16 +6,16 @@ //Some verbs that are still in the code but not used atm // Debug // verbs += /client/proc/radio_report //for radio debugging dont think its been used in a very long time -// verbs += /client/proc/air_status //does next to nothing // verbs += /client/proc/fix_next_move //has not been an issue in a very very long time -// verbs += /client/proc/Cell //More air things - // Mapping helpers + + // Mapping helpers added via enable_mapping_debug verb // verbs += /client/proc/do_not_use_these // verbs += /client/proc/camera_view // verbs += /client/proc/sec_camera_report // verbs += /client/proc/intercom_view -// verbs += /client/proc/enable_mapping_debug +// verbs += /client/proc/air_status //Air things +// verbs += /client/proc/Cell //More air things /client/proc/update_admins(var/rank) @@ -120,7 +120,7 @@ if (holder)//Slightly easier to edit way of granting powers holder.owner = src if (holder.level >= 6)//Game Master******************************************************************** - + verbs += /client/proc/callproc verbs += /client/proc/colorooc verbs += /obj/admins/proc/toggle_aliens //toggle aliens verbs += /obj/admins/proc/toggle_space_ninja //toggle ninjas @@ -132,7 +132,7 @@ verbs += /client/proc/cmd_debug_make_powernets verbs += /client/proc/object_talk verbs += /client/proc/strike_team - + verbs += /client/proc/enable_mapping_debug if (holder.level >= 5)//Game Admin******************************************************************** verbs += /obj/admins/proc/view_txt_log @@ -140,7 +140,6 @@ verbs += /client/proc/cmd_admin_list_open_jobs verbs += /client/proc/cmd_admin_direct_narrate verbs += /client/proc/cmd_admin_world_narrate - verbs += /client/proc/callproc verbs += /client/proc/cmd_debug_del_all verbs += /client/proc/cmd_debug_tog_aliens verbs += /client/proc/ticklag @@ -182,7 +181,6 @@ verbs += /client/proc/togglebuildmodeself verbs += /client/proc/hide_most_verbs - if (holder.level >= 3)//Trial Admin******************************************************************** verbs += /obj/admins/proc/toggleaban //abandon mob verbs += /client/proc/cmd_admin_remove_plasma @@ -364,6 +362,7 @@ verbs -= /client/proc/cmd_admin_say verbs -= /client/proc/cmd_admin_gib_self verbs -= /client/proc/restartcontroller + verbs -= /client/proc/enable_mapping_debug return @@ -616,6 +615,7 @@ verbs += /client/proc/game_panel verbs += /client/proc/player_panel verbs += /client/proc/cmd_admin_subtle_message + verbs += /client/proc/cmd_admin_pm verbs += /client/proc/cmd_admin_gib_self verbs += /client/proc/deadchat //toggles deadchat diff --git a/code/modules/admin/verbs/mapping.dm b/code/modules/admin/verbs/mapping.dm index da110a10aa..e3e11fe4a6 100644 --- a/code/modules/admin/verbs/mapping.dm +++ b/code/modules/admin/verbs/mapping.dm @@ -117,3 +117,5 @@ var/intercom_range_display_status = 0 src.verbs += /client/proc/camera_view //-errorage src.verbs += /client/proc/sec_camera_report //-errorage src.verbs += /client/proc/intercom_view //-errorage + src.verbs += /client/proc/air_status //Air things + src.verbs += /client/proc/Cell //More air things diff --git a/code/modules/food/food.dm b/code/modules/food/food.dm index e2b21409f5..588ea31d58 100644 --- a/code/modules/food/food.dm +++ b/code/modules/food/food.dm @@ -309,10 +309,8 @@ icon_state = "roburger" New() ..() - reagents.add_reagent("nutriment", 2) - reagents.add_reagent("nanites", 10) - bitesize = 3 - + reagents.add_reagent("nanites", 2) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/roburgerbig name = "roburger" diff --git a/code/modules/mob/login.dm b/code/modules/mob/login.dm index 451b36a88d..2ef64ff9d4 100644 --- a/code/modules/mob/login.dm +++ b/code/modules/mob/login.dm @@ -35,13 +35,14 @@ src.next_move = 1 src.sight |= SEE_SELF src.logged_in = 1 - + if(istype (src, /mob/living)) if(ticker) - if(ticker.mode.name == "revolution") - if ((src.mind in ticker.mode:revolutionaries) || (src.mind in ticker.mode:head_revolutionaries)) - ticker.mode:update_rev_icons_added(src.mind) - if(ticker.mode.name == "cult") - if (src.mind in ticker.mode:cult) - ticker.mode:update_cult_icons_added(src.mind) - ..() + if(ticker.mode) + if(ticker.mode.name == "revolution") + if ((src.mind in ticker.mode:revolutionaries) || (src.mind in ticker.mode:head_revolutionaries)) + ticker.mode:update_rev_icons_added(src.mind) + if(ticker.mode.name == "cult") + if (src.mind in ticker.mode:cult) + ticker.mode:update_cult_icons_added(src.mind) + ..() diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 3acf443ca8..a6bf67207e 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -143,6 +143,7 @@ mob/new_player stat("[player.key]", (player.ready)?("(Playing)"):(null)) Topic(href, href_list[]) + if(!src.client) return if(href_list["show_preferences"]) preferences.ShowChoices(src) return 1 @@ -252,8 +253,6 @@ mob/new_player AttemptLateSpawn("Shaft Miner", minerMax) if ("30") AttemptLateSpawn("Mime", mimeMax) - //if ("31") < Nope. Latejoining cyborgs can fuck a lot of shit up since it's sudden and nobody is near the robotics console etc. -- Urist - //AttemptLateSpawn("Cyborg", borgMax) if(!ready && href_list["preferences"]) preferences.process_link(src, href_list) @@ -273,10 +272,6 @@ mob/new_player if (character) character.Equip_Rank(rank, joined_late=1) - //add to manifest -- Commented out in favor of ManifestLateSpawn() -- TLE - //for(var/datum/data/record/t in data_core.general) - // if((t.fields["name"] == character.real_name) && (t.fields["rank"] == "Unassigned")) - // t.fields["rank"] = rank if(character.mind.assigned_role != "Cyborg") ManifestLateSpawn(character,char_icon) if(ticker) @@ -435,22 +430,28 @@ mob/new_player if (IsJobAvailable("Botanist",hydroponicsMax)) dat += "Botanist
" + if (IsJobAvailable("Librarian",librarianMax)) dat += "Librarian
" + if (IsJobAvailable("Virologist",viroMax)) dat += "Virologist
" + if (IsJobAvailable("Lawyer",lawyerMax)) dat += "Lawyer
" + if (IsJobAvailable("Cargo Technician",cargotechMax)) dat += "Cargo Technician
" + if (IsJobAvailable("Chief Medical Officer",cmoMax)) dat += "Chief Medical Officer
" + if (IsJobAvailable("Warden", wardenMax)) dat += "Warden
" + if (IsJobAvailable("Shaft Miner",minerMax)) dat += "Shaft Miner
" - //if (IsJobAvailable("Cyborg",borgMax)) - //dat += "Cyborg
" + if (!jobban_isbanned(src,"Assistant")) dat += "Assistant
" @@ -478,118 +479,3 @@ mob/new_player proc/close_spawn_windows() src << browse(null, "window=latechoices") //closes late choices window src << browse(null, "window=playersetup") //closes the player setup window - -/* -/obj/begin/verb/enter() - log_game("[usr.key] entered as [usr.real_name]") - - if (ticker) - for (var/mob/living/silicon/ai/A in world) - if (!A.stat) - A.say("[usr.real_name] has arrived on the station!") - break - - usr << "Game mode is [master_mode]." - - var/mob/living/carbon/human/H = usr - -//find spawn points for normal game modes - - if(!(ticker && ticker.mode.name == "ctf")) - var/list/L = list() - var/area/A = locate(/area/arrival/start) - for(var/turf/T in A) - L += T - - while(!L.len) - usr << "\blue You were unable to enter because the arrival shuttle has been destroyed! The game will reattempt to spawn you in 30 seconds!" - sleep(300) - for(var/turf/T in A) - L += T - H << "\blue Now teleporting." - H.loc = pick(L) - -//for capture the flag - - else if(ticker && ticker.mode.name == "ctf") - if(H.client.team == "Red") - var/obj/R = locate("landmark*Red-Spawn") - H << "\blue Now teleporting." - H.loc = R.loc - else if(H.client.team == "Green") - var/obj/G = locate("landmark*Green-Spawn") - H << "\blue Now teleporting." - H.loc = G.loc - -//error check - - else - usr << "Invalid start please report this to the admins" - -//add to manifest - - if(ticker) - //add to manifest - var/datum/data/record/G = new /datum/data/record( ) - var/datum/data/record/M = new /datum/data/record( ) - var/datum/data/record/S = new /datum/data/record( ) - var/obj/item/weapon/card/id/C = H.wear_id - if (C) - G.fields["rank"] = C.assignment - else - G.fields["rank"] = "Unassigned" - G.fields["name"] = H.real_name - G.fields["id"] = text("[]", add_zero(num2hex(rand(1, 1.6777215E7)), 6)) - M.fields["name"] = G.fields["name"] - M.fields["id"] = G.fields["id"] - S.fields["name"] = G.fields["name"] - S.fields["id"] = G.fields["id"] - if (H.gender == "female") - G.fields["sex"] = "Female" - else - G.fields["sex"] = "Male" - G.fields["age"] = text("[]", H.age) - G.fields["fingerprint"] = text("[]", md5(H.dna.uni_identity)) - G.fields["p_stat"] = "Active" - G.fields["m_stat"] = "Stable" - M.fields["b_type"] = text("[]", H.b_type) - M.fields["mi_dis"] = "None" - M.fields["mi_dis_d"] = "No minor disabilities have been declared." - M.fields["ma_dis"] = "None" - M.fields["ma_dis_d"] = "No major disabilities have been diagnosed." - M.fields["alg"] = "None" - M.fields["alg_d"] = "No allergies have been detected in this patient." - M.fields["cdi"] = "None" - M.fields["cdi_d"] = "No diseases have been diagnosed at the moment." - M.fields["notes"] = "No notes." - S.fields["criminal"] = "None" - S.fields["mi_crim"] = "None" - S.fields["mi_crim_d"] = "No minor crime convictions." - S.fields["ma_crim"] = "None" - S.fields["ma_crim_d"] = "No minor crime convictions." - S.fields["notes"] = "No notes." - for(var/obj/datacore/D in world) - D.general += G - D.medical += M - D.security += S -//DNA! - reg_dna[H.dna.unique_enzymes] = H.real_name -//Other Stuff - if(ticker.mode.name == "sandbox") - H.CanBuild() - -*/ -/* - say(var/message) - message = trim(copytext(sanitize(message), 1, MAX_MESSAGE_LEN)) - - if (!message) - return - - log_say("[key] : [message]") - - if (muted) - return - - . = say_dead(message) -*/ \ No newline at end of file diff --git a/tgstation.dme b/tgstation.dme index 2469864e04..b32e8e4231 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -135,7 +135,6 @@ #define FILE_DIR "icons/turf" #define FILE_DIR "interface" #define FILE_DIR "maps" -#define FILE_DIR "maps/backup" #define FILE_DIR "sound" #define FILE_DIR "sound/ambience" #define FILE_DIR "sound/announcer" @@ -159,6 +158,7 @@ #include "code\ATMOSPHERICS\atmospherics.dm" #include "code\ATMOSPHERICS\datum_pipe_network.dm" #include "code\ATMOSPHERICS\datum_pipeline.dm" +#include "code\ATMOSPHERICS\he_pipes.dm" #include "code\ATMOSPHERICS\pipes.dm" #include "code\ATMOSPHERICS\components\filter.dm" #include "code\ATMOSPHERICS\components\mixer.dm"