Merge remote-tracking branch 'upstream/master'

This commit is contained in:
Tastyfish
2012-01-06 16:41:52 -05:00
21 changed files with 8681 additions and 8475 deletions
+1
View File
@@ -172,6 +172,7 @@
temperature_expose(datum/gas_mixture/air, temperature, volume)
if(temperature > T0C+200)
health -= 0.01 * temperature
update()
proc/expand(var/turf/T = null)
if(!prob(health)) return//TODO: Change this to prob(health + o2 mols or such)
if(!T)
+6 -1
View File
@@ -85,11 +85,16 @@
else
for(var/i = 1, i <= rand(1,3), i++)
switch(rand(1,100))
if(1 to 40)
if(1 to 30)
var/datum/objective/assassinate/kill_objective = new
kill_objective.owner = traitor
kill_objective.find_target()
traitor.objectives += kill_objective
if(31 to 40)
var/datum/objective/protect/protect_objective = new
protect_objective.owner = traitor
protect_objective.find_target()
traitor.objectives += protect_objective
else
var/datum/objective/steal/steal_objective = new
steal_objective.owner = traitor
-1
View File
@@ -13,7 +13,6 @@
H.equip_if_possible(new /obj/item/weapon/storage/backpack(H), H.slot_back)
H.equip_if_possible(new /obj/item/clothing/under/rank/captain(H), H.slot_w_uniform)
H.equip_if_possible(new /obj/item/device/pda/captain(H), H.slot_belt)
H.equip_if_possible(new /obj/item/clothing/suit/armor/captain(H), H.slot_wear_suit)
H.equip_if_possible(new /obj/item/clothing/shoes/brown(H), H.slot_shoes)
H.equip_if_possible(new /obj/item/clothing/head/caphat(H), H.slot_head)
H.equip_if_possible(new /obj/item/clothing/glasses/sunglasses(H), H.slot_glasses)
+2 -2
View File
@@ -111,8 +111,8 @@
H.equip_if_possible(new /obj/item/clothing/under/rank/security(H), H.slot_w_uniform)
H.equip_if_possible(new /obj/item/clothing/shoes/jackboots(H), H.slot_shoes)
H.equip_if_possible(new /obj/item/device/pda/security(H), H.slot_belt)
H.equip_if_possible(new /obj/item/clothing/suit/armor/vest(H), H.slot_wear_suit)
H.equip_if_possible(new /obj/item/clothing/head/helmet(H), H.slot_head)
H.equip_if_possible(new /obj/item/clothing/suit/storage/gearharness(H), H.slot_wear_suit)
H.equip_if_possible(new /obj/item/clothing/head/secsoft(H), H.slot_head)
H.equip_if_possible(new /obj/item/weapon/handcuffs(H), H.slot_in_backpack)
H.equip_if_possible(new /obj/item/clothing/gloves/red(H), H.slot_gloves)
H.equip_if_possible(new /obj/item/weapon/handcuffs(H), H.slot_s_store)
+1 -1
View File
@@ -204,7 +204,7 @@
src.target = T
if(!src.target || src.target == null)
for (var/turf/space/D in view(7,src))
if(!(D in floorbottargets) && D != src.oldtarget && (D.loc.name != "Space"))
if(!(D in floorbottargets) && D != src.oldtarget && (D.loc.name != "Space") && !istype(D.loc, /area/shuttle))
src.oldtarget = D
src.target = D
break
+11 -10
View File
@@ -1,3 +1,4 @@
/var/list/geneticsrecords = list()
//Cloning revival method.
//The pod handles the actual cloning while the computer manages the clone profiles
@@ -34,6 +35,8 @@
var/obj/item/weapon/disk/data/diskette = null //Mostly so the geneticist can steal everything.
var/wantsscan = 1
var/wantspod = 1
var/poddir = 8 //Which dir relative to the computer it is in.
var/scandir = 8
//The return of data disks?? Just for transferring between genetics machine/cloning machine.
//TO-DO: Make the genetics machine accept them.
@@ -65,17 +68,15 @@
/obj/machinery/computer/cloning/New()
..()
spawn(5)
src.scanner = locate(/obj/machinery/dna_scannernew, get_step(src, WEST))
// src.scanner = locate(/obj/machinery/dna_scannernew, get_step(src, EAST))
// src.pod1 = locate(/obj/machinery/clonepod, get_step(src, EAST))
src.pod1 = locate(/obj/machinery/clonepod, get_step(src, WEST))
src.scanner = locate(/obj/machinery/dna_scannernew, get_step(src, scandir))
src.pod1 = locate(/obj/machinery/clonepod, get_step(src, poddir))
src.temp = ""
if (isnull(src.scanner) && wantsscan)
src.temp += " <font color=red>SCNR-ERROR</font>"
if (isnull(src.pod1) && wantspod)
src.temp += " <font color=red>POD1-ERROR</font>"
else
else if (wantspod)
src.pod1.connected = src
if (src.temp == "")
@@ -138,7 +139,7 @@
if(2)
dat += "<h4>Current records</h4>"
dat += "<a href='byond://?src=\ref[src];menu=1'>Back</a><br><br>"
for(var/datum/data/record/R in src.records)
for(var/datum/data/record/R in geneticsrecords)
dat += "<a href='byond://?src=\ref[src];view_rec=\ref[R]'>[R.fields["id"]]-[R.fields["name"]]</a><br>"
if(3)
@@ -220,7 +221,7 @@
var/obj/item/weapon/card/id/C = usr.equipped()
if (istype(C)||istype(C, /obj/item/device/pda))
if(src.check_access(C))
src.records.Remove(src.active_record)
geneticsrecords.Remove(src.active_record)
del(src.active_record)
src.temp = "Record deleted."
src.menu = 2
@@ -290,7 +291,7 @@
src.temp = "Unable to initiate cloning cycle." // most helpful error message in THE HISTORY OF THE WORLD
else if (src.pod1.growclone(selected, C.fields["name"], C.fields["UI"], C.fields["SE"], C.fields["mind"], C.fields["mrace"], C.fields["interface"],C.fields["changeling"]))
src.temp = "Cloning cycle activated."
src.records.Remove(C)
geneticsrecords.Remove(C)
del(C)
src.menu = 1
@@ -350,13 +351,13 @@
if (!isnull(subject.mind)) //Save that mind so traitors can continue traitoring after cloning.
R.fields["mind"] = "\ref[subject.mind]"
src.records += R
geneticsrecords += R //Save it to the global scan list.
src.temp = "Subject successfully scanned."
//Find a specific record by key.
/obj/machinery/computer/cloning/proc/find_record(var/find_key)
var/selected_record = null
for(var/datum/data/record/R in src.records)
for(var/datum/data/record/R in geneticsrecords)
if (R.fields["ckey"] == find_key)
selected_record = R
break
+1 -2
View File
@@ -550,8 +550,7 @@ var/list/sacrificed = list()
var/list/mob/living/carbon/human/cultsinrange = list()
var/list/mob/living/carbon/human/victims = list()
for(var/mob/living/carbon/human/V in src.loc)
if(!(iscultist(V)))
victims += V
victims += V
for(var/mob/living/carbon/C in orange(1,src))
if(iscultist(C))
cultsinrange += C
+2
View File
@@ -126,6 +126,8 @@
src.welded = 1
src.loc = P
O.amount -= 3
else
user << "\blue You need more paper."
else if(src.opened)
if(istype(W, /obj/item/weapon/grab))
src.MouseDrop_T(W:affecting, user) //act like they were dragged onto the closet
+1 -1
View File
@@ -7,6 +7,7 @@
..()
sleep(2)
new /obj/item/clothing/suit/storage/captunic(src)
new /obj/item/clothing/suit/armor/captain(src)
new /obj/item/clothing/head/helmet/cap(src)
new /obj/item/clothing/under/rank/captain(src)
new /obj/item/clothing/suit/armor/vest(src)
@@ -110,7 +111,6 @@
new /obj/item/weapon/pepperspray(src)
new /obj/item/device/flash(src)
new /obj/item/weapon/melee/baton(src)
new /obj/item/weapon/gun/energy/taser(src)
new /obj/item/clothing/glasses/sunglasses/sechud(src)
return
+9
View File
@@ -192,6 +192,15 @@
/obj/item/attackby(obj/item/weapon/W as obj, mob/user as mob)
if (istype(W, /obj/item/weapon/packageWrap))
if(istype(src,/obj/item/weapon/storage) && istype(src.loc, /mob)) //Put it into the bag
return
if(istype(src.loc,/obj/item/weapon/storage) || istype(src.loc,/obj/item/clothing/suit/storage/)) //Taking stuff out of storage duplicates it.
user << "\blue Do not do this, it is broken as all hell. Take it out of the container first."
return
for(var/obj/item/T in user) //Lets remove it from their inventory
if(T == src)
user.remove_from_mob(T)
break
var/obj/item/weapon/packageWrap/O = W
if (O.amount > 1)
var/obj/item/smallDelivery/P = new /obj/item/smallDelivery(get_turf(src.loc))
+97
View File
@@ -0,0 +1,97 @@
//STRIKE TEAMS
var/list/response_team_members = list()
var/send_emergency_team = 0
client/verb/JoinResponseTeam()
set category = "IC"
if(istype(usr,/mob/dead/observer) || istype(usr,/mob/new_player))
if(!send_emergency_team)
usr << "No emergency response team is currently being sent."
return
if(response_team_members.len > 5) usr << "The emergency response team is already full!"
var/leader_selected = (response_team_members.len == 0)
for (var/obj/effect/landmark/L in world) if (L.name == "Commando")
var/new_name = input(usr, "Pick a name","Name") as null|text
if(!new_name) return
var/gender = alert(usr, "Pick a gender","Gender","Male","Female")
var/mob/living/carbon/human/new_commando = create_response_team(L, leader_selected, new_name, gender)
new_commando.mind.key = usr.key
new_commando.key = usr.key
new_commando << "\blue You are [!leader_selected?"member":"<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."
else
usr << "You need to be an observer or new player to use this."
proc/trigger_armed_response_team()
if(send_emergency_team)
return
command_alert("According to our sensors, [station_name()] has entered code red. We will prepare and dispatch an emergency response team to deal with the situation.", "Command Report")
send_emergency_team = 1
/client/proc/create_response_team(obj/spawn_location, leader_selected = 0, commando_name, gender)
var/mob/living/carbon/human/new_commando = new(spawn_location.loc)
new_commando.gender = ((gender == "Male") ? MALE : FEMALE)
var/datum/preferences/A = new()//Randomize appearance for the commando.
A.randomize_appearance_for(new_commando)
new_commando.real_name = commando_name
new_commando.age = !leader_selected ? rand(23,35) : rand(35,45)
new_commando.dna.ready_dna(new_commando)//Creates DNA.
//Creates mind stuff.
new_commando.mind = new
new_commando.mind.current = new_commando
new_commando.mind.original = new_commando
new_commando.mind.assigned_role = "MODE"
new_commando.mind.special_role = "Death Commando"
if(!(new_commando.mind in ticker.minds))
ticker.minds += new_commando.mind//Adds them to regular mind list.
new_commando.equip_strike_team(leader_selected)
del(spawn_location)
return new_commando
/mob/living/carbon/human/proc/equip_strike_team(leader_selected = 0)
var/obj/item/device/radio/R = new /obj/item/device/radio/headset(src)
R.set_frequency(1441)
equip_if_possible(R, slot_ears)
equip_if_possible(new /obj/item/clothing/under/color/black(src), slot_w_uniform)
equip_if_possible(new /obj/item/clothing/shoes/swat(src), slot_shoes)
equip_if_possible(new /obj/item/clothing/suit/armor/swat(src), slot_wear_suit)
equip_if_possible(new /obj/item/clothing/gloves/swat(src), slot_gloves)
equip_if_possible(new /obj/item/clothing/head/helmet/space/deathsquad(src), slot_head)
equip_if_possible(new /obj/item/clothing/mask/gas/swat(src), slot_wear_mask)
equip_if_possible(new /obj/item/weapon/storage/backpack/security(src), slot_back)
equip_if_possible(new /obj/item/weapon/storage/box(src), slot_in_backpack)
equip_if_possible(new /obj/item/weapon/storage/firstaid/regular(src), slot_in_backpack)
equip_if_possible(new /obj/item/device/flashlight(src), slot_in_backpack)
equip_if_possible(new /obj/item/weapon/tank/emergency_oxygen(src), slot_s_store)
var/obj/item/weapon/card/id/W = new(src)
W.name = "[real_name]'s ID Card"
W.icon_state = "centcom"
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.
W.assignment = "Emergency Response Team"
W.registered = real_name
equip_if_possible(W, slot_wear_id)
return 1
+1 -1
View File
@@ -179,7 +179,7 @@ var/specops_shuttle_timeleft = 0
user << "\red Access Denied."
return
if (sent_strike_team == 0)
if (sent_strike_team == 0 && send_emergency_team == 0)
usr << "\red The strike team has not yet deployed."
return