H/E pipes once again do H/E things

Missed a line on the flashes, they will once again stun cyborgs
Few adminverbs changed by request of the heads
Roburgers will only provide 2 nanites down from 10
The random round spawn code now checks jobbans
Players with a Cyborg jobban cannot become a cyborg normally

Re added the old power armor typepaths as there seem to be a few of them in the .dmm and the thing's autocorrect/remove items seems to just fuck up the rest of the map when used.  I have no idea where they are located and don't like leaving errors in the code, so if someone could remove them and the old typepaths it would be great.


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2024 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
mport2004@gmail.com
2011-08-19 06:11:28 +00:00
parent d867f56b75
commit ed93b992c4
14 changed files with 137 additions and 231 deletions

View File

@@ -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

View File

@@ -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"

View File

@@ -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)

View File

@@ -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

View File

@@ -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)

View File

@@ -61,6 +61,7 @@
flick("blspell", animation)
sleep(5)
del(animation)
user.weakened = max(user.weakened, 10)
if(!flashfail)

View File

@@ -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."

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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"

View File

@@ -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)
..()

View File

@@ -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 += "<a href='byond://?src=\ref[src];SelectedJob=22'>Botanist</a><br>"
if (IsJobAvailable("Librarian",librarianMax))
dat += "<a href='byond://?src=\ref[src];SelectedJob=23'>Librarian</a><br>"
if (IsJobAvailable("Virologist",viroMax))
dat += "<a href='byond://?src=\ref[src];SelectedJob=24'>Virologist</a><br>"
if (IsJobAvailable("Lawyer",lawyerMax))
dat += "<a href='byond://?src=\ref[src];SelectedJob=25'>Lawyer</a><br>"
if (IsJobAvailable("Cargo Technician",cargotechMax))
dat += "<a href='byond://?src=\ref[src];SelectedJob=26'>Cargo Technician</a><br>"
if (IsJobAvailable("Chief Medical Officer",cmoMax))
dat += "<a href='byond://?src=\ref[src];SelectedJob=27'>Chief Medical Officer</a><br>"
if (IsJobAvailable("Warden", wardenMax))
dat += "<a href='byond://?src=\ref[src];SelectedJob=28'>Warden</a><br>"
if (IsJobAvailable("Shaft Miner",minerMax))
dat += "<a href='byond://?src=\ref[src];SelectedJob=29'>Shaft Miner</a><br>"
//if (IsJobAvailable("Cyborg",borgMax))
//dat += "<a href='byond://?src=\ref[src];SelectedJob=31'>Cyborg</a><br>"
if (!jobban_isbanned(src,"Assistant"))
dat += "<a href='byond://?src=\ref[src];SelectedJob=18'>Assistant</a><br>"
@@ -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 << "<B>Game mode is [master_mode].</B>"
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 <B>You were unable to enter because the arrival shuttle has been destroyed! The game will reattempt to spawn you in 30 seconds!</B>"
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)
*/

View File

@@ -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"