Merge pull request #311 from SkyMarshal/master

Response team and map updates
This commit is contained in:
Hawk-v3
2012-01-25 12:41:14 -08:00
14 changed files with 8799 additions and 8652 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."
+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"])
+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 -8
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 = "The nuclear authorization code is: <b>[nuke.r_code]</b>"
P.name = "nuclear bomb code"
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
@@ -200,7 +217,7 @@ proc/trigger_armed_response_team()
//Shoes & gloves
var/obj/item/clothing/shoes/swat/S = new /obj/item/clothing/shoes/swat(src)
S.flags = NOSLIP
S.flags += NOSLIP
equip_if_possible(S, slot_shoes)
equip_if_possible(new /obj/item/clothing/gloves/swat(src), slot_gloves)
@@ -219,6 +236,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(40)) // 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
@@ -1203,6 +1203,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.
////////////////////////////////////////////////////////////////////////////////
@@ -2116,6 +2122,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."
New()
..()
reagents.add_reagent("bicaridine", 10)
reagents.add_reagent("dexalinp", 5)
reagents.add_reagent("dermaline", 10)
reagents.add_reagent("arithrazine", 10)
reagents.add_reagent("inaprovaline", 10)
reagents.add_reagent("cryptobiolin", 5)
/obj/item/weapon/reagent_containers/glass/bottle/ert/boost
name = "combat boost bottle"
desc = "Seems to be a strange mix of delicious goodness."
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."
New()
..()
reagents.add_reagent("clonexadone", 20)
reagents.add_reagent("liquidnitrogen", 20)
reagents.add_reagent("chloralhydrate", 10)
/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone
name = "beaker"
@@ -2764,7 +2821,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
+8591 -8602
View File
File diff suppressed because it is too large Load Diff