Merge branch 'master' of github.com:Baystation12/Baystation12 into TGUpdates

Conflicts:
	code/defines/obj/supplypacks.dm
	icons/mob/items_lefthand.dmi
	icons/mob/items_righthand.dmi
This commit is contained in:
Erthilo
2012-05-15 00:51:50 +01:00
66 changed files with 8538 additions and 8393 deletions
@@ -403,7 +403,7 @@
del(usr)
return
/*
/client/proc/changeling_greater_form() // Oh shit, it's on now.
set category = "Changeling"
@@ -429,7 +429,7 @@
flick("h2monkey", animation)
sleep(48)
//animation = null
var/mob/living/carbon/human/tajaran/Emissary/O = new /mob/living/carbon/human/tajaran/Emissary( src )
var/mob/living/carbon/human/O = new /mob/living/carbon/human( src )//Removed Emissary shit -Sieve{R}
del(animation)
O.real_name = usr.real_name
@@ -495,7 +495,7 @@
new_objective.owner = O.mind
O.mind.objectives += new_objective
spawn(0)
/* spawn(0)
while(emergency_shuttle.online == 0)
sleep(10)
command_alert("Authorization codes recieved, confirming hostile entity terminated. The emergancy shuttle is now departing.")
@@ -512,8 +512,8 @@
sleep(10)
if((locate(/mob/living/carbon/human/tajaran/Emissary) in locate(/area/shuttle/escape/centcom)) || (locate(/mob/living/carbon/human/tajaran/Emissary) in locate(/area/centcom/evac)) || (locate(/mob/living/carbon/human/tajaran/Emissary) in locate(/area/centcom/control) ) )
command_alert("What the fu- Shoot it! SHOOT IT! CENTRAL COMMAND TRANSMITTING DIST- *static* Nevermind previous transmission, Nanotrasen. We're all good here. Subject contained. Standing down alert status.")
Tarjan shit, not recoding this -Sieve{R}*/
*/
/client/proc/changeling_fakedeath()
set category = "Changeling"
set name = "Regenerative Stasis (20)"
@@ -41,14 +41,14 @@ var/list/obj/effect/proc_holder/power/powerinstances = list()
verbpath = /client/proc/changeling_lesser_form
/*
/obj/effect/proc_holder/power/changeling_greater_form
name = "Greater Form"
desc = "We become the pinnicle of evolution. We will show the humans what happens when they leave their isle of ignorance."
genomecost = 250
// verbpath = /client/proc/changeling_greater_form
verbpath = /client/proc/changeling_greater_form
*/
/obj/effect/proc_holder/power/fakedeath
name = "Fake Death"
desc = "We fake our death while we heal."
@@ -92,7 +92,7 @@ var/list/obj/effect/proc_holder/power/powerinstances = list()
/obj/effect/proc_holder/power/silence_sting
name = "Silence Sting"
desc = "We silently sting a human, completely silencing them for a short time."
helptext = "Does not provide a warning to a victim that they've been stung, until they try to speak and can't." // Man, fuck javascript. ' == '
helptext = "Does not provide a warning to a victim that they have been stung, until they try to speak and can not."
genomecost = 2
allowduringlesserform = 1
@@ -190,7 +190,7 @@ var/list/obj/effect/proc_holder/power/powerinstances = list()
/obj/effect/proc_holder/power/LSDSting
name = "Hallucination Sting"
desc = "We evolve the ability to sting a target with a powerful hallunicationary chemical."
helptext = "The target does not notice they've been stung. The effect occurs after 30 to 60 seconds."
helptext = "The target does not notice they have been stung. The effect occurs after 30 to 60 seconds."
genomecost = 3
verbpath = /client/proc/changeling_lsdsting
+2 -2
View File
@@ -94,7 +94,7 @@
traitor.objectives += block_objective
else
for(var/datum/objective/o in SelectObjectives((traitor.current:wear_id ? traitor.current:wear_id:assignment : traitor.assigned_role), traitor))
for(var/datum/objective/o in SelectObjectives((istype(traitor.current:wear_id, /obj/item/weapon/card/id) ? traitor.current:wear_id:assignment : traitor.assigned_role), traitor))
o.owner = traitor
traitor.objectives += o
return
@@ -238,7 +238,7 @@
if (!R && traitor_mob.w_uniform && istype(traitor_mob.belt, /obj/item/device/radio))
R = traitor_mob.belt
loc = "on your belt"
if (!R && istype(traitor_mob.l_ear, /obj/item/device/radio) || prob(10))
if (!R && istype(traitor_mob.l_ear, /obj/item/device/radio))
R = traitor_mob.l_ear
loc = "on your head"
if (!R && istype(traitor_mob.r_ear, /obj/item/device/radio))
@@ -7,6 +7,7 @@
var/active = 0
var/list/holographic_items = list()
var/damaged = 0
var/last_change = 0
attack_ai(var/mob/user as mob)
@@ -233,6 +234,15 @@
/obj/machinery/computer/HolodeckControl/proc/loadProgram(var/area/A)
if(world.time < (last_change + 25))
if(world.time < (last_change + 15))//To prevent super-spam clicking, reduced process size and annoyance -Sieve
return
for(var/mob/M in range(3,src))
M.show_message("\b ERROR. Recalibrating projetion apparatus.")
last_change = world.time
return
last_change = world.time
active = 1
for(var/item in holographic_items)
+28 -14
View File
@@ -42,20 +42,34 @@
dat += "<A HREF='?src=\ref[user];mach_close=op'>Close</A><br><br>" //| <A HREF='?src=\ref[user];update=1'>Update</A>"
if(src.table && (src.table.check_victim()))
src.victim = src.table.victim
dat += {"
<B>Patient Information:</B><BR>
<BR>
<B>Name:</B> [src.victim.real_name]<BR>
<B>Age:</B> [src.victim.age]<BR>
<B>Blood Type:</B> [src.victim.dna.b_type]<BR>
<BR>
<B>Health:</B> [src.victim.health]<BR>
<B>Brute Damage:</B> [src.victim.getBruteLoss()]<BR>
<B>Toxins Damage:</B> [src.victim.getToxLoss()]<BR>
<B>Fire Damage:</B> [src.victim.getFireLoss()]<BR>
<B>Suffocation Damage:</B> [src.victim.getOxyLoss()]<BR>
<B>Patient Status:</B> [src.victim.stat ? "Non-Responsive" : "Stable"]<BR>
"}
if(istype(victim))
dat += {"
<B>Patient Information:</B><BR>
<BR>
<B>Name:</B> [src.victim.real_name]<BR>
<B>Age:</B> [src.victim.age]<BR>
<B>Blood Type:</B> [(victim.dna? victim.dna.b_type : "ERROR")]<BR>
<BR>
<B>Health:</B> [src.victim.health]<BR>
<B>Brute Damage:</B> [src.victim.getBruteLoss()]<BR>
<B>Toxins Damage:</B> [src.victim.getToxLoss()]<BR>
<B>Fire Damage:</B> [src.victim.getFireLoss()]<BR>
<B>Suffocation Damage:</B> [src.victim.getOxyLoss()]<BR>
<B>Patient Status:</B> [src.victim.stat ? "Non-Responsive" : "Stable"]<BR>
"}
else if(istype(victim, /mob/living))
dat += {"
<B>Patient Information:</B><BR>
<BR>
<B>Name:</B> [src.victim.real_name]<BR>
<B>Age:</B> [src.victim.age]<BR>
<B>Health:</B> [src.victim.health]<BR>
<B>Brute Damage:</B> [src.victim.getBruteLoss()]<BR>
<B>Toxins Damage:</B> [src.victim.getToxLoss()]<BR>
<B>Fire Damage:</B> [src.victim.getFireLoss()]<BR>
<B>Suffocation Damage:</B> [src.victim.getOxyLoss()]<BR>
<B>Patient Status:</B> [src.victim.stat ? "Non-Responsive" : "Stable"]<BR>
"}
else
src.victim = null
dat += {"
+12 -11
View File
@@ -257,7 +257,7 @@
if(istype(P, /obj/item/weapon/circuitboard) && !circuit)
var/obj/item/weapon/circuitboard/B = P
if(B.board_type == "computer")
if(B.build_path != "")
if(B.build_path != "" && !isnull(B.build_path))
playsound(src.loc, 'Deconstruct.ogg', 50, 1)
user << "\blue You place the circuit board inside the frame."
src.icon_state = "1"
@@ -324,13 +324,14 @@
if(istype(P, /obj/item/weapon/screwdriver))
playsound(src.loc, 'Screwdriver.ogg', 50, 1)
user << "\blue You connect the monitor."
var/B = new src.circuit.build_path ( src.loc )
if(circuit.powernet) B:powernet = circuit.powernet
if(circuit.id) B:id = circuit.id
if(circuit.records) B:records = circuit.records
if(circuit.frequency) B:frequency = circuit.frequency
if(istype(circuit,/obj/item/weapon/circuitboard/supplycomp))
var/obj/machinery/computer/supplycomp/SC = B
var/obj/item/weapon/circuitboard/supplycomp/C = circuit
SC.can_order_contraband = C.contraband_enabled
del(src)
if(circuit && circuit.build_path)
var/B = new circuit.build_path (loc)
if(circuit.powernet) B:powernet = circuit.powernet
if(circuit.id) B:id = circuit.id
if(circuit.records) B:records = circuit.records
if(circuit.frequency) B:frequency = circuit.frequency
if(istype(circuit,/obj/item/weapon/circuitboard/supplycomp))
var/obj/machinery/computer/supplycomp/SC = B
var/obj/item/weapon/circuitboard/supplycomp/C = circuit
SC.can_order_contraband = C.contraband_enabled
del(src)
+49 -79
View File
@@ -1,87 +1,57 @@
/obj/structure/closet/extinguisher
name = "extinguisher closet"
name = "extinguisher cabinet"
desc = "A small wall mounted cabinet designed to hold a fire extinguisher."
icon_state = "extinguisher10"
icon_opened = "extinguisher11"
icon_closed = "extinguisher10"
opened = 1
icon = 'closet.dmi'
icon_state = "extinguisher_closed"
anchored = 1
density = 0
var/obj/item/weapon/extinguisher/EXTINGUISHER = new/obj/item/weapon/extinguisher
var/localopened = 1
var/obj/item/weapon/extinguisher/has_extinguisher = new/obj/item/weapon/extinguisher
open()
/obj/structure/closet/extinguisher/attackby(var/obj/item/O as obj, var/mob/user as mob)
if (isrobot(usr))
return
close()
return
attackby(var/obj/item/O as obj, var/mob/user as mob)
if (isrobot(usr))
return
if (istype(O, /obj/item/weapon/extinguisher))
if(!EXTINGUISHER)
user.drop_item(O)
src.contents += O
EXTINGUISHER = O
user << "\blue You place the extinguisher in the [src.name]."
else
localopened = !localopened
if (istype(O, /obj/item/weapon/extinguisher))
if(!has_extinguisher && opened)
user.drop_item(O)
src.contents += O
has_extinguisher = O
user << "\blue You place the extinguisher in the [src.name]."
else
localopened = !localopened
update_icon()
attack_hand(mob/user as mob)
if(localopened)
if(EXTINGUISHER)
user.put_in_hand(EXTINGUISHER)
EXTINGUISHER = null
user << "\blue You take the extinguisher from the [name]."
else
localopened = !localopened
else
localopened = !localopened
update_icon()
verb/toggle_openness() //nice name, huh? HUH?!
set name = "Open/Close"
set category = "Object"
if (isrobot(usr))
return
localopened = !localopened
update_icon()
verb/remove_extinguisher()
set name = "Remove Extinguisher"
set category = "Object"
if (isrobot(usr))
return
if (localopened)
if(EXTINGUISHER)
usr.put_in_hand(EXTINGUISHER)
EXTINGUISHER = null
usr << "\blue You take the extinguisher from the [name]."
else
usr << "\blue The [name] is empty."
else
usr << "\blue The [name] is closed."
update_icon()
attack_paw(mob/user as mob)
attack_hand(user)
return
attack_ai(mob/user as mob)
return
opened = !opened
else
opened = !opened
update_icon()
var/hasextinguisher = 0
if(EXTINGUISHER)
hasextinguisher = 1
icon_state = text("extinguisher[][]",hasextinguisher,src.localopened)
/obj/structure/closet/extinguisher/attack_hand(mob/user as mob)
if(has_extinguisher)
user.put_in_hand(has_extinguisher)
has_extinguisher = null
user << "\blue You take the extinguisher from the [name]."
opened = 1
else
opened = !opened
update_icon()
/obj/structure/closet/extinguisher/attack_paw(mob/user as mob)
attack_hand(user)
return
/obj/structure/closet/extinguisher/update_icon()
if(!opened)
icon_state = "extinguisher_closed"
return
if(has_extinguisher)
if(istype(has_extinguisher, /obj/item/weapon/extinguisher/mini))
icon_state = "extinguisher_mini"
else
icon_state = "extinguisher_full"
else
icon_state = "extinguisher_empty"
+8 -4
View File
@@ -508,11 +508,15 @@
U << browse(null, "window=pda")
return
if("Message")
var/t = input(U, "Please enter message", name, null) as text
t = copytext(sanitize(t), 1, MAX_MESSAGE_LEN)
var/t
if(!href_list["pAI_mess"])
t = input(U, "Please enter message", name, null) as text
t = copytext(sanitize(t), 1, MAX_MESSAGE_LEN)
else
t = href_list["pAI_mess"]
if (!t)
return
if (!in_range(src, U) && loc != U)
if (!in_range(src, U) && loc != U && !href_list["pAI_mess"])
return
var/obj/item/device/pda/P = locate(href_list["target"])
@@ -705,7 +709,7 @@
honkamt--
playsound(loc, 'bikehorn.ogg', 30, 1)
if(U.machine == src)//Final safety.
if(U.machine == src && !href_list["pAI_mess"])//Final safety.
attack_self(U)//It auto-closes the menu prior if the user is not in range and so on.
else
U.machine = null
+8 -7
View File
@@ -411,15 +411,16 @@ steam.start() -- spawns the effect
var/obj/R = new /obj()
R.reagents = new/datum/reagents(500)
R.reagents.my_atom = R
reagents.trans_to(R, reagents.total_volume/divisor)
for(var/atom/A in view(1, src))
if(reagents.has_reagent("radium")||reagents.has_reagent("uranium")||reagents.has_reagent("carbon")||reagents.has_reagent("thermite"))//Prevents unholy radium spam by reducing the number of 'greenglows' down to something reasonable -Sieve
if(prob(5))
if(reagents)
reagents.trans_to(R, reagents.total_volume/divisor)
for(var/atom/A in view(1, src))
if(reagents.has_reagent("radium")||reagents.has_reagent("uranium")||reagents.has_reagent("carbon")||reagents.has_reagent("thermite"))//Prevents unholy radium spam by reducing the number of 'greenglows' down to something reasonable -Sieve
if(prob(5))
R.reagents.reaction(A)
del(R)
else if(R && R.reagents)
R.reagents.reaction(A)
del(R)
else
R.reagents.reaction(A)
del(R)
return
/obj/effect/effect/chem_smoke/HasEntered(mob/living/carbon/M as mob )
+12 -14
View File
@@ -27,18 +27,17 @@ MEDICAL
return 1
var/stoppedblood = 0
if(ishuman(M))
var/mob/living/carbon/human/H = M
var/datum/organ/external/affecting = H.get_organ("chest")
if(hasorgans(M))
var/datum/organ/external/affecting = M:get_organ("chest")
if(istype(user, /mob/living/carbon/human))
var/mob/living/carbon/human/user2 = user
affecting = H.get_organ(check_zone(user2.zone_sel.selecting))
affecting = M:get_organ(check_zone(user2.zone_sel.selecting))
else
if(!istype(affecting, /datum/organ/external) || affecting:burn_dam <= 0)
affecting = H.get_organ("head")
affecting = M:get_organ("head")
if(affecting.destroyed && !affecting.gauzed)
user.visible_message("\red You do your best to stop the bleeding from [H]'s stump.", "\red [user] does [user.gender == MALE? "his" : "her"] best to stem [H]'s bleeding from [H.gender == MALE? "his" : "her"] stump.", "\red You hear something like gauze being ripped.")
user.visible_message("\red You do your best to stop the bleeding from [M]'s stump.", "\red [user] does [user.gender == MALE? "his" : "her"] best to stem [M]'s bleeding from [M.gender == MALE? "his" : "her"] stump.", "\red You hear something like gauze being ripped.")
affecting.gauzed = 1
use(1)
return
@@ -69,7 +68,7 @@ MEDICAL
if (user && stoppedblood)
if (M != user)
user.visible_message("\red [user] [heal_burn? "salves" : "bandages"] [stoppedblood - 1 ? "some of" : "the last of"] [H]'s cuts with [src].", "\red You [heal_burn? "salve" : "bandage up"] [stoppedblood - 1 ? "some of" : "the last of"] [H]'s [heal_burn? "burns" : "wounds"].", "\red You hear something like gauze being ripped.")
user.visible_message("\red [user] [heal_burn? "salves" : "bandages"] [stoppedblood - 1 ? "some of" : "the last of"] [M]'s cuts with [src].", "\red You [heal_burn? "salve" : "bandage up"] [stoppedblood - 1 ? "some of" : "the last of"] [M]'s [heal_burn? "burns" : "wounds"].", "\red You hear something like gauze being ripped.")
else
user.visible_message("\red [user] [heal_burn? "salves" : "bandages"] [stoppedblood - 1 ? "some of" : "the last of"] [user.gender == MALE? "his" : "her"] own cuts with [src].", "\red You [heal_burn? "salve" : "bandage up"] [stoppedblood - 1 ? "some of" : "the last of"] your [heal_burn? "burns" : "wounds"].", "\red You hear something like gauze being ripped.")
else if(user)
@@ -146,18 +145,17 @@ MEDICAL
return 1
var/stoppedblood = 0
if(ishuman(M))
var/mob/living/carbon/human/H = M
var/datum/organ/external/affecting = H.get_organ("chest")
if(hasorgans(M))
var/datum/organ/external/affecting = M:get_organ("chest")
if(istype(user, /mob/living/carbon/human))
var/mob/living/carbon/human/user2 = user
affecting = H.get_organ(check_zone(user2.zone_sel.selecting))
affecting = M:get_organ(check_zone(user2.zone_sel.selecting))
else
if(!istype(affecting, /datum/organ/external) || affecting:burn_dam <= 0)
affecting = H.get_organ("head")
affecting = M:get_organ("head")
if(affecting.destroyed && !affecting.gauzed)
H.visible_message("\red You do your best to stop the bleeding from [H]'s stump.", "\red [user] does their best to stem [H]'s bleeding from [H.gender == MALE? "his" : "her"] stump.", "\red You hear something like gauze being ripped.")
M.visible_message("\red You do your best to stop the bleeding from [M]'s stump.", "\red [user] does their best to stem [M]'s bleeding from [M.gender == MALE? "his" : "her"] stump.", "\red You hear something like gauze being ripped.")
affecting.gauzed = 1
use(1)
return
@@ -179,7 +177,7 @@ MEDICAL
if (user && stoppedblood)
if (M != user)
user.visible_message("\red [user] [heal_burn? "salves" : "bandages"] [stoppedblood - 1 ? "some of" : "the last of"] [H]'s cuts with [src].", "\red You [heal_burn? "salve" : "bandage up"] [stoppedblood - 1 ? "some of" : "the last of"] [H]'s [heal_burn? "burns" : "wounds"].", "\red You hear something like gauze being ripped.")
user.visible_message("\red [user] [heal_burn? "salves" : "bandages"] [stoppedblood - 1 ? "some of" : "the last of"] [M]'s cuts with [src].", "\red You [heal_burn? "salve" : "bandage up"] [stoppedblood - 1 ? "some of" : "the last of"] [M]'s [heal_burn? "burns" : "wounds"].", "\red You hear something like gauze being ripped.")
else
user.visible_message("\red [user] [heal_burn? "salves" : "bandages"] [stoppedblood - 1 ? "some of" : "the last of"] [user.gender == MALE? "his" : "her"] own cuts with [src].", "\red You [heal_burn? "salve" : "bandage up"] [stoppedblood - 1 ? "some of" : "the last of"] your [heal_burn? "burns" : "wounds"].", "\red You hear something like gauze being ripped.")
else if(user)
+3
View File
@@ -263,6 +263,9 @@ WELDINGTOOOL
attack(mob/M as mob, mob/user as mob)
if(hasorgans(M))
var/datum/organ/external/S = M:organs[user.zone_sel.selecting]
if(S)
message_admins("It appears [M] has \"null\" where there should be a [user.zone_sel.selecting]. Check into this, and tell SkyMarshal: \"[M.type]\"")
return ..()
if(!S.robot || user.a_intent != "help")
return ..()
if(S.brute_dam)
+1 -1
View File
@@ -9,7 +9,7 @@
src.attack_ai(usr)
// check for TK users
AutoUpdateTK(src)
//AutoUpdateTK(src)
if (istype(usr, /mob/living/carbon/human))
if(istype(usr.l_hand, /obj/item/tk_grab) || istype(usr.r_hand, /obj/item/tk_grab/))
if(!(usr in nearby))
+6
View File
@@ -83,6 +83,9 @@ SHARDS
if("full (2 sheets)")
if(!src) return 1
if(src.loc != user) return 1
if(src.amount < 2)
user << "\red You need more glass to do that."
return 1
if(locate(/obj/structure/window) in user.loc)
user << "\red There is a window in the way."
return 1
@@ -142,6 +145,9 @@ SHARDS
if("full (2 sheets)")
if(!src) return 1
if(src.loc != user) return 1
if(src.amount < 2)
user << "\red You need more glass to do that."
return 1
if(locate(/obj/structure/window) in user.loc)
user << "\red There is a window in the way."
return 1
-3
View File
@@ -11,8 +11,6 @@
s["ai"] = config.allow_ai
s["host"] = host ? host : null
s["players"] = list()
s["admins"] = 0
var/admins = 0
var/n = 0
for(var/client/C)
@@ -30,6 +28,5 @@
s["end"] = "#end"
// 7 + s["players"] + 1 = index of s["revinfo"]
s["admins"] = admins
return list2params(s)