Merge remote-tracking branch 'upstream/master'

This commit is contained in:
Tastyfish
2012-01-25 20:05:16 -05:00
19 changed files with 8848 additions and 8679 deletions
+17
View File
@@ -60,6 +60,12 @@
/obj/item/weapon/storage/box/syndicate
/obj/item/weapon/storage/box/ert
name = "medical box"
desc = "Full of goodness."
icon_state = "implant"
item_state = "syringe_kit"
/obj/item/weapon/storage/pillbottlebox
name = "pill bottles"
desc = "A box of pill bottles."
@@ -82,6 +88,17 @@
desc = "The backpack used to keep with the sterile environment."
icon_state = "medicalpack"
/obj/item/weapon/storage/backpack/medic/full
//Spawns with 2 boxes of ERT gear, a box of ERT gear and a hypo, and a box of anesthetic.
New()
..()
new /obj/item/weapon/reagent_containers/hypospray/ert(src)
for(var/i = 1, i <=2, i++)
new /obj/item/weapon/storage/box/ert(src)
new /obj/item/weapon/storage/box/medic(src)
new /obj/item/weapon/storage/belt/medical(src)
return
/obj/item/weapon/storage/backpack/security
name = "security backpack"
desc = "A very robust backpack."
+5
View File
@@ -105,6 +105,11 @@
origin_tech = "materials=2"
m_amt = 30000
g_amt = 15000
var/ammo = 10
/obj/item/weapon/rcd_ammo/large
name = "Super compressed matter cartridge"
ammo = 30
/obj/item/weapon/spacecash
name = "Space Cash"
+1 -1
View File
@@ -118,7 +118,7 @@ var/global/datum/controller/gameticker/ticker
spawn(0)
while(1)
sleep(5000+rand(6000,9000))
sleep(5000+rand(6000,10000))
SpawnEvent()
//Start master_controller.process()
+5 -1
View File
@@ -562,7 +562,11 @@
process_bot()
if(2)
process_bot()
spawn(4)
spawn(2)
process_bot()
sleep(2)
process_bot()
sleep(2)
process_bot()
if(3)
process_bot()
+44 -36
View File
@@ -5,6 +5,8 @@
They receive their message from a server after the message has been logged.
*/
var
list/recentmessages = list() // global list of recent messages broadcasted : used to circumvent massive radio spam
/obj/machinery/telecomms/broadcaster
name = "Subspace Broadcaster"
@@ -24,6 +26,11 @@
if(signal.data["message"])
// Kind of lame way to prevent MASSIVE RADIO SPAM but it works
if("[signal.data["message"]]:[signal.data["realname"]]" in recentmessages)
return
recentmessages.Add( "[signal.data["message"]]:[signal.data["realname"]]" )
signal.data["done"] = 1 // mark the signal as being broadcasted
// Search for the original signal and mark it as done as well
@@ -44,6 +51,9 @@
/* --- Do a snazzy animation! --- */
flick("broadcaster_send", src)
spawn(1)
recentmessages = list()
/*
Basically just an empty shell for receiving and broadcasting radio messages. Not
@@ -69,50 +79,48 @@
if(!on) // has to be on to receive messages
return
if(signal.transmission_method == 2)
if(is_freq_listening(signal)) // detect subspace signals
if(is_freq_listening(signal)) // detect subspace signals
signal.data["done"] = 1 // mark the signal as being broadcasted
signal.data["compression"] = 0
signal.data["done"] = 1 // mark the signal as being broadcasted
signal.data["compression"] = 0
// Search for the original signal and mark it as done as well
var/datum/signal/original = signal.data["original"]
if(original)
original.data["done"] = 1
// Search for the original signal and mark it as done as well
var/datum/signal/original = signal.data["original"]
if(original)
original.data["done"] = 1
if(signal.data["slow"] > 0)
sleep(signal.data["slow"]) // simulate the network lag if necessary
if(signal.data["slow"] > 0)
sleep(signal.data["slow"]) // simulate the network lag if necessary
/* ###### Broadcast a message using signal.data ###### */
/* ###### Broadcast a message using signal.data ###### */
var/datum/radio_frequency/connection = signal.data["connection"]
var/datum/radio_frequency/connection = signal.data["connection"]
if(connection.frequency == NUKE_FREQ && syndi) // if syndicate broadcast, just
if(connection.frequency == NUKE_FREQ && syndi) // if syndicate broadcast, just
Broadcast_Message(signal.data["connection"], signal.data["mob"],
signal.data["vmask"], signal.data["vmessage"],
signal.data["radio"], signal.data["message"],
signal.data["name"], signal.data["job"],
signal.data["realname"], signal.data["vname"],, signal.data["compression"])
else if(connection.frequency == 1439 && !syndi)
Broadcast_Message(signal.data["connection"], signal.data["mob"],
signal.data["vmask"], signal.data["vmessage"],
signal.data["radio"], signal.data["message"],
signal.data["name"], signal.data["job"],
signal.data["realname"], signal.data["vname"],, signal.data["compression"])
else if (intercept)
if(syndi)
Broadcast_Message(signal.data["connection"], signal.data["mob"],
signal.data["vmask"], signal.data["vmessage"],
signal.data["radio"], signal.data["message"],
signal.data["name"], signal.data["job"],
signal.data["realname"], signal.data["vname"],, signal.data["compression"])
else if(connection.frequency == 1439 && !syndi)
signal.data["vmask"], signal.data["vmessage"],
signal.data["radio"], signal.data["message"],
signal.data["name"], signal.data["job"],
signal.data["realname"], signal.data["vname"], 3, signal.data["compression"])
else
Broadcast_Message(signal.data["connection"], signal.data["mob"],
signal.data["vmask"], signal.data["vmessage"],
signal.data["radio"], signal.data["message"],
signal.data["name"], signal.data["job"],
signal.data["realname"], signal.data["vname"],, signal.data["compression"])
else if (intercept)
if(syndi)
Broadcast_Message(signal.data["connection"], signal.data["mob"],
signal.data["vmask"], signal.data["vmessage"],
signal.data["radio"], signal.data["message"],
signal.data["name"], signal.data["job"],
signal.data["realname"], signal.data["vname"], 3, signal.data["compression"])
else
Broadcast_Message(signal.data["connection"], signal.data["mob"],
signal.data["vmask"], signal.data["vmessage"],
signal.data["radio"], signal.data["message"],
signal.data["name"], signal.data["job"],
signal.data["realname"], signal.data["vname"], 4, signal.data["compression"])
signal.data["vmask"], signal.data["vmessage"],
signal.data["radio"], signal.data["message"],
signal.data["name"], signal.data["job"],
signal.data["realname"], signal.data["vname"], 4, signal.data["compression"])
+2 -2
View File
@@ -192,7 +192,7 @@
if(do_after_cooldown(target))
if(disabled) return
chassis.spark_system.start()
target:ReplaceWithFloor()
target:ReplaceWithPlating()
playsound(target, 'Deconstruct.ogg', 50, 1)
chassis.give_power(energy_drain)
else if (istype(target, /turf/simulated/floor))
@@ -219,7 +219,7 @@
set_ready_state(0)
if(do_after_cooldown(target))
if(disabled) return
target:ReplaceWithFloor()
target:ReplaceWithPlating()
playsound(target, 'Deconstruct.ogg', 50, 1)
chassis.spark_system.start()
chassis.use_power(energy_drain*2)
+2 -2
View File
@@ -232,7 +232,7 @@
if(!cell.use(30)) return
user << "Building Floor..."
activate()
A:ReplaceWithFloor()
A:ReplaceWithPlating()
return
if(istype(A, /turf/simulated/floor))
@@ -263,7 +263,7 @@
playsound(src.loc, 'click.ogg', 50, 1)
if(do_after(user, 40))
activate()
A:ReplaceWithFloor()
A:ReplaceWithPlating()
return
if(istype(A, /turf/simulated/wall/r_wall))
+28 -19
View File
@@ -24,10 +24,11 @@ RCD
working = 0
mode = 1
disabled = 0
max_matter = 30
New()
desc = "A RCD. It currently holds [matter]/30 matter-units."
desc = "A RCD. It currently holds [matter]/[max_matter] matter-units."
src.spark_system = new /datum/effect/effect/system/spark_spread
spark_system.set_up(5, 0, src)
spark_system.attach(src)
@@ -37,14 +38,15 @@ RCD
attackby(obj/item/weapon/W as obj, mob/user as mob)
..()
if(istype(W, /obj/item/weapon/rcd_ammo))
if((matter + 10) > 30)
var/obj/item/weapon/rcd_ammo/R = W
if((matter + R.ammo) > max_matter)
user << "The RCD cant hold any more matter."
return
matter += R.ammo
del(W)
matter += 10
playsound(src.loc, 'click.ogg', 50, 1)
user << "The RCD now holds [matter]/30 matter-units."
desc = "A RCD. It currently holds [matter]/30 matter-units."
user << "The RCD now holds [matter]/[max_matter] matter-units."
desc = "A RCD. It currently holds [matter]/[max_matter] matter-units."
return
@@ -79,10 +81,10 @@ RCD
playsound(src.loc, 'Deconstruct.ogg', 50, 1)
spark_system.set_up(5, 0, src)
src.spark_system.start()
A:ReplaceWithFloor()
A:ReplaceWithPlating()
matter--
user << "The RCD now holds [matter]/30 matter-units."
desc = "A RCD. It currently holds [matter]/30 matter-units."
user << "The RCD now holds [matter]/[max_matter] matter-units."
desc = "A RCD. It currently holds [matter]/[max_matter] matter-units."
return
if(istype(A, /turf/simulated/floor) && matter >= 3)
user << "Building Wall (3)..."
@@ -94,8 +96,8 @@ RCD
A:ReplaceWithWall()
playsound(src.loc, 'Deconstruct.ogg', 50, 1)
matter -= 3
user << "The RCD now holds [matter]/30 matter-units."
desc = "A RCD. It currently holds [matter]/30 matter-units."
user << "The RCD now holds [matter]/[max_matter] matter-units."
desc = "A RCD. It currently holds [matter]/[max_matter] matter-units."
return
else if(istype(A, /turf/simulated/floor) && mode == 2 && matter >= 10)
user << "Building Airlock (10)..."
@@ -113,8 +115,8 @@ RCD
playsound(src.loc, 'Deconstruct.ogg', 50, 1)
playsound(src.loc, 'sparks2.ogg', 50, 1)
matter -= 10
user << "The RCD now holds [matter]/30 matter-units."
desc = "A RCD. It currently holds [matter]/30 matter-units."
user << "The RCD now holds [matter]/[max_matter] matter-units."
desc = "A RCD. It currently holds [matter]/[max_matter] matter-units."
return
else if(mode == 3 && (istype(A, /turf) || istype(A, /obj/machinery/door/airlock) ) )
if(istype(A, /turf/simulated/wall) && matter >= 4)
@@ -124,11 +126,11 @@ RCD
if(!disabled && matter >= 4)
spark_system.set_up(5, 0, src)
src.spark_system.start()
A:ReplaceWithFloor()
A:ReplaceWithPlating()
playsound(src.loc, 'Deconstruct.ogg', 50, 1)
matter -= 4
user << "The RCD now holds [matter]/30 matter-units."
desc = "A RCD. It currently holds [matter]/30 matter-units."
user << "The RCD now holds [matter]/[max_matter] matter-units."
desc = "A RCD. It currently holds [matter]/[max_matter] matter-units."
return
if(istype(A, /turf/simulated/wall/r_wall))
return
@@ -142,8 +144,8 @@ RCD
A:ReplaceWithSpace()
playsound(src.loc, 'Deconstruct.ogg', 50, 1)
matter -= 5
user << "The RCD now holds [matter]/30 matter-units."
desc = "A RCD. It currently holds [matter]/30 matter-units."
user << "The RCD now holds [matter]/[max_matter] matter-units."
desc = "A RCD. It currently holds [matter]/[max_matter] matter-units."
return
if(istype(A, /obj/machinery/door/airlock) && matter >= 10)
user << "Deconstructing Airlock (10)..."
@@ -155,6 +157,13 @@ RCD
del(A)
playsound(src.loc, 'Deconstruct.ogg', 50, 1)
matter -= 10
user << "The RCD now holds [matter]/30 matter-units."
desc = "A RCD. It currently holds [matter]/30 matter-units."
user << "The RCD now holds [matter]/[max_matter] matter-units."
desc = "A RCD. It currently holds [matter]/[max_matter] matter-units."
return
/obj/item/weapon/rcd/industrial
name = "industrial rapid construction device"
max_matter = 60
New()
matter = max_matter
return ..()
+8
View File
@@ -77,6 +77,14 @@
new /obj/item/weapon/wirecutters(src)
new /obj/item/weapon/cable_coil(src,30,pick("red","yellow"))
/obj/item/weapon/storage/belt/security/full/New()
..()
new /obj/item/weapon/melee/baton(src)
new /obj/item/weapon/pepperspray(src)
new /obj/item/weapon/flashbang(src)
new /obj/item/weapon/handcuffs(src)
new /obj/item/weapon/handcuffs(src)
new /obj/item/weapon/handcuffs(src)
/obj/item/weapon/storage/belt/medical
+13
View File
@@ -272,6 +272,19 @@
new /obj/item/weapon/tank/emergency_oxygen/anesthetic( src )
return
/obj/item/weapon/storage/box/ert/New()
..()
contents = list()
sleep(1)
new /obj/item/weapon/reagent_containers/glass/bottle/ert/cryo( src )
new /obj/item/weapon/reagent_containers/glass/bottle/ert/cryo( src )
new /obj/item/weapon/reagent_containers/glass/bottle/ert/cryo( src )
new /obj/item/weapon/reagent_containers/glass/bottle/ert/quikheal( src )
new /obj/item/weapon/reagent_containers/glass/bottle/ert/quikheal( src )
new /obj/item/weapon/reagent_containers/glass/bottle/ert/boost( src )
new /obj/item/weapon/reagent_containers/glass/bottle/ert/boost( src )
return
/obj/item/weapon/storage/box/syndicate/New()
..()
switch (pickweight(list("bloodyspai" = 1, "stealth" = 1, "screwed" = 1, "guns" = 1, "freedom" = 1)))
+1 -1
View File
@@ -98,7 +98,7 @@ TABLE AND RACK OBJECT INTERATIONS
/obj/structure/table/CanPass(atom/movable/mover, turf/target, height=0, air_group=0)
if(air_group || (height==0)) return 1
if(istype(mover) && mover.checkpass(PASSTABLE))
if(istype(mover) && (mover.checkpass(PASSTABLE) || mover.checkpass(TABLEPASS))) //WTF do things hit tables like that? Jeez.
return 1
else
return 0
+26 -10
View File
@@ -27,8 +27,9 @@ client/verb/JoinResponseTeam()
new_commando.mind.key = usr.key
new_commando.key = usr.key
new_commando << "\blue You are [!leader_selected?" a member":" the <B>LEADER</B>"] of an armed response team in CentComm's service. Something went down on [station_name()] and they're now on code red. Go in there and fix the problem."
new_commando << "\blue You are [!leader_selected?"a member":"the <B>LEADER</B>"] of an armed response team in CentComm's service. Something went down on [station_name()] and they're now on code red. Go in there and fix the problem."
new_commando << "<b>You should first gear up and discuss a plan with your team. More members may be joining, don't move out before you're ready."
del(L)
else
usr << "You need to be an observer or new player to use this."
@@ -73,9 +74,23 @@ proc/trigger_armed_response_team()
send_emergency_team = 1
var/area/security/nuke_storage/nukeloc = locate()//To find the nuke in the vault
var/obj/machinery/nuclearbomb/nuke = locate() in nukeloc
if(!nuke)
nuke = locate() in world
var/obj/item/weapon/paper/P = new
P.info = "Your orders, Commander, are to use all necessary tools given to return the station to a survivable condition. <br> To this end, you have been provided with the best tools we can give in the three areas of Medical Engineering and Security. The nuclear authorization code is: <b>[nuke.r_code]</b>. Be warned, if you detonate this without good reason, we will hold you to account for damages. Memorise this code, and then burn this message."
P.name = "Emergency Nuclear Code, and ERT Orders"
for (var/obj/effect/landmark/A in world)
if (A.name == "nukecode")
P.loc = A.loc
del(A)
continue
/client/proc/create_response_team(obj/spawn_location, leader_selected = 0, commando_name)
var/mob/living/carbon/human/M = new(spawn_location.loc)
var/mob/living/carbon/human/M = new(null)
response_team_members |= M
var/new_facial = input("Please select facial hair color.", "Character Generation") as color
if(new_facial)
@@ -97,9 +112,10 @@ proc/trigger_armed_response_team()
var/new_tone = input("Please select skin tone level: 1-220 (1=albino, 35=caucasian, 150=black, 220='very' black)", "Character Generation") as text
if (new_tone)
M.s_tone = max(min(round(text2num(new_tone)), 220), 1)
M.s_tone = -M.s_tone + 35
if (!new_tone)
new_tone = 35
M.s_tone = max(min(round(text2num(new_tone)), 220), 1)
M.s_tone = -M.s_tone + 35
// hair
var/list/all_hairs = typesof(/datum/sprite_accessory/hair) - /datum/sprite_accessory/hair
@@ -157,6 +173,7 @@ proc/trigger_armed_response_team()
M.update_clothing()
M.real_name = commando_name
M.name = commando_name
M.age = !leader_selected ? rand(23,35) : rand(35,45)
M.dna.ready_dna(M)//Creates DNA.
@@ -169,6 +186,7 @@ proc/trigger_armed_response_team()
M.mind.special_role = "Response Team"
if(!(M.mind in ticker.minds))
ticker.minds += M.mind//Adds them to regular mind list.
M.loc = spawn_location.loc
M.equip_strike_team(leader_selected)
del(spawn_location)
return M
@@ -180,8 +198,7 @@ proc/trigger_armed_response_team()
R.name = "CentCom Response Team headset"
R.desc = "The headset of the boss's boss. Channels are as follows: :h - Response Team :c - command, :s - security, :e - engineering, :d - mining, :q - cargo, :m - medical, :n - science."
R.freerange = 1
R.listening = 0
R.config(list("Response Team" = 1, "Science" = 0, "Command" = 0, "Medical" = 0, "Engineering" = 0, "Security" = 0, "Mining" = 0, "Cargo" = 0,))
R.config(list("Response Team" = 1, "Science" = 1, "Command" = 1, "Medical" = 1, "Engineering" = 1, "Security" = 1, "Mining" = 1, "Cargo" = 1,))
equip_if_possible(R, slot_ears)
//Adding Camera Network
@@ -199,9 +216,7 @@ proc/trigger_armed_response_team()
equip_if_possible(new /obj/item/clothing/glasses/sunglasses/sechud(src), slot_glasses)
//Shoes & gloves
var/obj/item/clothing/shoes/swat/S = new /obj/item/clothing/shoes/swat(src)
S.flags = NOSLIP
equip_if_possible(S, slot_shoes)
equip_if_possible(new /obj/item/clothing/shoes/swat(src), slot_shoes)
equip_if_possible(new /obj/item/clothing/gloves/swat(src), slot_gloves)
//Removed
@@ -219,6 +234,7 @@ proc/trigger_armed_response_team()
W.icon_state = "centcom"
if(leader_selected)
W.access = get_access("Captain")
W.access += list(access_cent_teleporter)
else
W.access = get_access("Head of Personnel")
W.access += list(access_cent_general, access_cent_specops, access_cent_living, access_cent_storage)//Let's add their alloted CentCom access.
@@ -1503,6 +1503,27 @@ datum
..()
return
liquidnitrogen
name = "Liquid Nitrogen"
id = "liquidnitrogen"
description = "Liquid Nitrogen. VERY cold."
reagent_state = LIQUID
color = "#B31008" // rgb: 139, 166, 233
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
M:bodytemperature -= 50 //This and the following two lines need to be checked and tinkered with so that the Cryo-In-A-Syringe
if(prob(5)) // leaves someone at 100% healthy from anything up to in heavy crit (-75%)
M.take_organ_damage(0, 1)
if(prob(80) && istype(M, /mob/living/carbon/metroid))
M.adjustFireLoss(rand(5,20))
M << "\red You feel a terrible chill inside your body!"
..()
return
reaction_turf(var/turf/simulated/T, var/volume)
for(var/mob/living/carbon/metroid/M in T)
M.adjustToxLoss(rand(15,30))
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
+58 -1
View File
@@ -1262,6 +1262,12 @@
user << "\blue [trans] units injected. [reagents.total_volume] units remaining in the hypospray."
return
/obj/item/weapon/reagent_containers/hypospray/ert
name = "emergency hypospray"
desc = "The DeForest Medical Corporation hypospray is a sterile, air-needle autoinjector for rapid administration of drugs to patients."
amount_per_transfer_from_this = 50
volume = 50
////////////////////////////////////////////////////////////////////////////////
/// Food.
////////////////////////////////////////////////////////////////////////////////
@@ -2175,6 +2181,57 @@
var/list/data = list("viruses"= list(F))
reagents.add_reagent("blood", 20, data)
/obj/item/weapon/reagent_containers/glass/bottle/ert
name = "emergency medicine bottle"
desc = "A large bottle."
icon = 'chemical.dmi'
icon_state = "bottle3"
item_state = "atoxinbottle"
amount_per_transfer_from_this = 50
possible_transfer_amounts = null
flags = FPRINT | TABLEPASS | OPENCONTAINER
volume = 50
New()
..()
if(!icon_state)
icon_state = "bottle[rand(1,20)]"
/obj/item/weapon/reagent_containers/glass/bottle/ert/quikheal
name = "Quikheal bottle"
desc = "Seems to be a strange mix of delicious goodness. Smells woozy."
New()
..()
reagents.add_reagent("bicaridine", 8)
reagents.add_reagent("dexalinp", 5)
reagents.add_reagent("dermaline", 8)
reagents.add_reagent("arithrazine", 8)
reagents.add_reagent("inaprovaline", 8)
reagents.add_reagent("cryptobiolin", 13)
/obj/item/weapon/reagent_containers/glass/bottle/ert/boost
name = "Combat Boost bottle"
desc = "Seems to be a strange mix of delicious goodness. It... Pulses slightly before your eyes."
New()
..()
reagents.add_reagent("hyperzine", 10)
reagents.add_reagent("dermaline", 10)
reagents.add_reagent("leporazine", 10)
reagents.add_reagent("bicaridine", 10)
reagents.add_reagent("mutagen", 10)
/obj/item/weapon/reagent_containers/glass/bottle/ert/cryo
name = "Cryo-in-a-bottle"
desc = "Seems to be a strange mix of delicious goodness. It's freezing cold to the touch."
New()
..()
reagents.add_reagent("clonexadone", 25)
reagents.add_reagent("liquidnitrogen", 15)
reagents.add_reagent("chloralhydrate", 10)
/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone
name = "beaker"
@@ -2823,7 +2880,7 @@
icon_state = "pill5"
New()
..()
reagents.add_reagent("toxin", 100)
reagents.add_reagent("chloralhydrate", 100)
/obj/item/weapon/reagent_containers/pill/adminordrazine
name = "Adminordrazine pill"
@@ -47,4 +47,4 @@
w_class = 3
allowed = list(/obj/item/weapon/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs,/obj/item/weapon/tank/emergency_oxygen)
slowdown = 0
armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30)
armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30)
+12
View File
@@ -101,23 +101,29 @@
name = "Black Space Helmet"
icon_state = "syndicate-helm-black-blue"
item_state = "syndicate-helm-black-blue"
armor = list(melee = 70, bullet = 70, laser = 60, energy = 30, bomb = 30, bio = 50, rad = 50)
/obj/item/clothing/suit/space/syndicate/black/blue
name = "Black and Blue Space Suit"
icon_state = "syndicate-black-blue"
item_state = "syndicate-black-blue"
armor = list(melee = 70, bullet = 70, laser = 60, energy = 30, bomb = 30, bio = 50, rad = 50)
slowdown = 2
/obj/item/clothing/head/helmet/space/syndicate/black/med
name = "Black Space Helmet"
icon_state = "syndicate-helm-black-med"
item_state = "syndicate-helm-black"
armor = list(melee = 50, bullet = 40, laser = 30,energy = 15, bomb = 30, bio = 100, rad = 100)
/obj/item/clothing/suit/space/syndicate/black/med
name = "Green Space Suit"
icon_state = "syndicate-black-med"
item_state = "syndicate-black"
armor = list(melee = 50, bullet = 40, laser = 30,energy = 15, bomb = 30, bio = 100, rad = 100)
slowdown = 0
@@ -138,12 +144,15 @@
name = "Black Space Helmet"
icon_state = "syndicate-helm-black-red"
item_state = "syndicate-helm-black-red"
armor = list(melee = 70, bullet = 70, laser = 60, energy = 30, bomb = 30, bio = 30, rad = 30)
/obj/item/clothing/suit/space/syndicate/black/red
name = "Black and Red Space Suit"
icon_state = "syndicate-black-red"
item_state = "syndicate-black-red"
armor = list(melee = 70, bullet = 70, laser = 60, energy = 30, bomb = 30, bio = 30, rad = 30)
slowdown = 4
@@ -151,12 +160,15 @@
name = "Black Space Helmet"
icon_state = "syndicate-helm-black-engie"
item_state = "syndicate-helm-black"
armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 50, bio = 30, rad = 100)
/obj/item/clothing/suit/space/syndicate/black/engie
name = "Black Engineering Space Suit"
icon_state = "syndicate-black-engie"
item_state = "syndicate-black"
armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 50, bio = 30, rad = 100)
slowdown = 2
@@ -418,7 +418,7 @@
else if(src.health < config.health_threshold_crit)
if(src.health <= 20 && prob(1)) spawn(0) emote("gasp")
//if(!src.rejuv) src.oxyloss++
if(!src.rejuv) src.oxyloss++
if(!src.reagents.has_reagent("inaprovaline")) src.oxyloss++
if(src.stat != 2) src.stat = 1
+8 -2
View File
@@ -316,6 +316,7 @@
desc = "A chute for big and small packages alike!"
density = 0
icon_state = "intake"
var/currentlyFlushing = 0
interact()
return
@@ -351,8 +352,13 @@
air_contents = new() // new empty gas resv.
sleep(10)
playsound(src, 'disposalflush.ogg', 50, 0, 0)
sleep(10) // Prevent sound spam when several objects are flushed simultaneously.
if(!currentlyFlushing)
currentlyFlushing = 1
playsound(src, 'disposalflush.ogg', 50, 0, 0)
spawn(17) // Sound file is ~3 seconds long, adjust this if it becomes longer/shorter.
currentlyFlushing = 0
sleep(5) // wait for animation to finish
+8595 -8602
View File
File diff suppressed because it is too large Load Diff