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
+5 -3
View File
@@ -26,6 +26,10 @@ obj/machinery/atmospherics/tvalve
icon_state = "tvalve[state]"
New()
initialize_directions()
..()
proc/initialize_directions()
switch(dir)
if(NORTH)
initialize_directions = SOUTH|NORTH|EAST
@@ -35,7 +39,6 @@ obj/machinery/atmospherics/tvalve
initialize_directions = WEST|EAST|SOUTH
if(WEST)
initialize_directions = EAST|WEST|NORTH
..()
network_expand(datum/pipe_network/new_network, obj/machinery/atmospherics/pipe/reference)
if(reference == node1)
@@ -339,7 +342,7 @@ obj/machinery/atmospherics/tvalve
obj/machinery/atmospherics/tvalve/mirrored
icon_state = "tvalvem0"
New()
initialize_directions()
switch(dir)
if(NORTH)
initialize_directions = SOUTH|NORTH|WEST
@@ -349,7 +352,6 @@ obj/machinery/atmospherics/tvalve/mirrored
initialize_directions = WEST|EAST|NORTH
if(WEST)
initialize_directions = EAST|WEST|SOUTH
..()
initialize()
var/node1_dir
@@ -42,6 +42,7 @@ obj/machinery/atmospherics/unary/oxygen_generator
air_contents.temperature = (current_heat_capacity*air_contents.temperature + 20*added_oxygen*T0C)/(current_heat_capacity+20*added_oxygen)
air_contents.oxygen += added_oxygen
air_contents.update_values()
if(network)
network.update = 1
@@ -124,6 +124,7 @@
//Remix the resulting gases
filtered_out.update_values()
removed.update_values()
air_contents.merge(filtered_out)
loc.assume_air(removed)
+3 -4
View File
@@ -44,11 +44,9 @@ datum/pipe_network
proc/merge(datum/pipe_network/giver)
if(giver==src) return 0
normal_members -= giver.normal_members
normal_members += giver.normal_members
normal_members |= giver.normal_members
line_members -= giver.line_members
line_members += giver.line_members
line_members |= giver.line_members
for(var/obj/machinery/atmospherics/normal_member in giver.normal_members)
normal_member.reassign_network(giver, src)
@@ -139,6 +137,7 @@ datum/pipe_network
gas.trace_gases += corresponding
corresponding.moles = trace_gas.moles*gas.volume/air_transient.volume
gas.update_values()
air_transient.update_values()
return 1
+1
View File
@@ -50,6 +50,7 @@ datum/pipeline
member.air_temporary.trace_gases += corresponding
corresponding.moles = trace_gas.moles*member.volume/air.volume
member.air_temporary.update_values()
proc/build_pipeline(obj/machinery/atmospherics/pipe/base)
air = new
+2
View File
@@ -341,6 +341,8 @@ obj/machinery/atmospherics/pipe
New()
initialize_directions = dir
if(air_temporary)
air_temporary.update_values()
..()
process()
+6
View File
@@ -19,6 +19,12 @@ datum
var/list/space_borders
var/length_space_border = 0
Del()
spawn(5)
message_admins("WARNING! Airgroup deleted! Stacktrace is in a runtime, give it to Sky.")
CRASH("Fuck. Something deleted an airgroup. Here's your stack trace.")
..()
proc/suspend_group_processing()
//Purpose: Suspends processing of the group, breaks it into individual tiles.
//Called by: Any check where the airgroup is determined to break.
+6 -2
View File
@@ -891,6 +891,9 @@ datum
if(abs(delta_temperature) > MINIMUM_TEMPERATURE_DELTA_TO_CONSIDER)
var/self_heat_capacity = heat_capacity_archived()
var/sharer_heat_capacity = sharer.heat_capacity_archived()
if(!group_multiplier)
message_admins("Error! The gas mixture (ref \ref[src]) has no group multiplier!")
return
if((sharer_heat_capacity > MINIMUM_HEAT_CAPACITY) && (self_heat_capacity > MINIMUM_HEAT_CAPACITY))
var/heat = conduction_coefficient*delta_temperature* \
@@ -903,13 +906,14 @@ datum
var/delta_temperature = (temperature - model.temperature)
if(abs(delta_temperature) > MINIMUM_TEMPERATURE_DELTA_TO_CONSIDER)
var/self_heat_capacity = heat_capacity()//_archived()
if(!group_multiplier)
message_admins("Error! The gas mixture (ref \ref[src]) has no group multiplier!")
return
if((model.heat_capacity > MINIMUM_HEAT_CAPACITY) && (self_heat_capacity > MINIMUM_HEAT_CAPACITY))
var/heat = conduction_coefficient*delta_temperature* \
(self_heat_capacity*model.heat_capacity/(self_heat_capacity+model.heat_capacity))
ASSERT(self_heat_capacity != 0) // Trying to solve a runtime error - Abi79
ASSERT(group_multiplier != 0)
if(border_multiplier)
temperature -= heat*border_multiplier/(self_heat_capacity*group_multiplier)
else
+42 -28
View File
@@ -104,6 +104,7 @@ datum
var/current_cycle = 0
var/update_delay = 5 //How long between check should it try to process atmos again.
var/failed_ticks = 0 //How many ticks have runtimed?
/* process()
@@ -211,39 +212,52 @@ datum
set background = 1
while(1)
if(kill_air)
return 1
current_cycle++
if(groups_to_rebuild.len > 0) //If there are groups to rebuild, do so.
spawn process_rebuild_select_groups()
if(!kill_air)
current_cycle++
var/success = tick() //Changed so that a runtime does not crash the ticker.
if(!success) //Runtimed.
failed_ticks++
if(failed_ticks > 20)
world << "<font size='4' color='red'>ERROR IN ATMOS TICKER. Killing air simulation!</font>"
kill_air = 1
sleep(max(5,update_delay*tick_multiplier))
if(tiles_to_update.len > 0) //If there are tiles to update, do so.
for(var/turf/simulated/T in tiles_to_update)
spawn T.update_air_properties()
tiles_to_update = list()
proc/tick()
if(groups_to_rebuild.len > 0) //If there are groups to rebuild, do so.
spawn process_rebuild_select_groups()
for(var/datum/air_group/AG in air_groups) //Processing groups
if(tiles_to_update.len > 0) //If there are tiles to update, do so.
for(var/turf/simulated/T in tiles_to_update)
spawn T.update_air_properties()
tiles_to_update = list()
for(var/datum/air_group/AG in air_groups) //Processing groups
spawn
if(AG) // Because of runtime errors on syphoning.
AG.process_group()
for(var/turf/simulated/T in active_singletons) //Processing Singletons
spawn
if(istype(T))
T.process_cell()
else
active_singletons.Remove(T)
for(var/turf/simulated/hot_potato in active_super_conductivity) //Process superconduction
spawn hot_potato.super_conduct()
if(high_pressure_delta.len) //Process high pressure delta (airflow)
for(var/turf/pressurized in high_pressure_delta)
spawn pressurized.high_pressure_movements()
high_pressure_delta = list()
if(current_cycle%10==5) //Check for groups of tiles to resume group processing every 10 cycles
for(var/datum/air_group/AG in air_groups)
spawn
if(AG) // Because of runtime errors on syphoning.
AG.process_group()
AG.check_regroup()
return 1
for(var/turf/simulated/T in active_singletons) //Processing Singletons
spawn T.process_cell()
for(var/turf/simulated/hot_potato in active_super_conductivity) //Process superconduction
spawn hot_potato.super_conduct()
if(high_pressure_delta.len) //Process high pressure delta (airflow)
for(var/turf/pressurized in high_pressure_delta)
spawn pressurized.high_pressure_movements()
high_pressure_delta = list()
if(current_cycle%10==5) //Check for groups of tiles to resume group processing every 10 cycles
for(var/datum/air_group/AG in air_groups)
spawn
if(AG) // Because of runtime errors on syphoning.
AG.check_regroup()
sleep(max(5,update_delay*tick_multiplier))
proc/process_rebuild_select_groups()
//Purpose: This gets called to recalculate and rebuild group geometry
+4 -3
View File
@@ -369,9 +369,10 @@ var/datum/cameranet/cameranet = new()
return 0
/mob/living/silicon/ai/switchCamera(var/obj/machinery/camera/C)
eyeobj.loc = C.loc
cameranet.visibility(eyeobj)
return
if(C && isturf(C.loc))
eyeobj.loc = C.loc
cameranet.visibility(eyeobj)
return
/mob/living/silicon/ai/attack_ai(var/mob/user as mob)
if (user != src)
@@ -4,7 +4,7 @@
voice_name = "tajaran"
icon = 'tajaran.dmi'
icon_state = "m-none"
var/list/tajspeak_letters
var/list/tajspeak_letters = list("~","*","-")
//
universal_speak = 1 //hacky fix until someone can figure out how to make them only understand humans
taj_talk_understand = 1
@@ -12,8 +12,6 @@
examine_text = "one of the cat-like Tajarans."
/mob/living/carbon/human/tajaran/New()
tajspeak_letters = new/list("~","*","-")
var/g = "m"
if (gender == FEMALE)
g = "f"
+22 -14
View File
@@ -380,23 +380,31 @@
return "I couldn't find [name]'s PDA."
// send message
pda.tnote += "<i><b>&larr; From [eliza.callsign]:</b></i><br>[object]<br>"
if(!istype(eliza.speaker.loc.loc, /obj/item/device/pda))//Looking if we are in a PDA
pda.tnote += "<i><b>&larr; From [eliza.callsign]:</b></i><br>[object]<br>"
if(prob(15) && eliza.speaker) //Give the AI a chance of intercepting the message
var/who = eliza.speaker
if(prob(50))
who = "[eliza.speaker:master] via [eliza.speaker]"
for(var/mob/living/silicon/ai/ai in world)
ai.show_message("<i>Intercepted message from <b>[who]</b>: [object]</i>")
if(prob(15) && eliza.speaker) //Give the AI a chance of intercepting the message
var/who = eliza.speaker
if(prob(50))
who = "[eliza.speaker:master] via [eliza.speaker]"
for(var/mob/living/silicon/ai/ai in world)
ai.show_message("<i>Intercepted message from <b>[who]</b>: [object]</i>")
if (!pda.silent)
playsound(pda.loc, 'twobeep.ogg', 50, 1)
for (var/mob/O in hearers(3, pda.loc))
O.show_message(text("\icon[pda] *[pda.ttone]*"))
pda.overlays = null
pda.overlays += image('pda.dmi', "pda-r")
if (!pda.silent)
playsound(pda.loc, 'twobeep.ogg', 50, 1)
for (var/mob/O in hearers(3, pda.loc))
O.show_message(text("\icon[pda] *[pda.ttone]*"))
pda.overlays = null
pda.overlays += image('pda.dmi', "pda-r")
else
var/list/href_list = list()
href_list["src"] = "\ref[eliza.speaker.loc.loc]"
href_list["choice"] = "Message"
href_list["target"] = "\ref[pda]"
href_list["pAI_mess"] = "\"[object]\" \[Via pAI Unit\]"
var/obj/item/device/pda/pda_im_in = eliza.speaker.loc.loc
pda_im_in.Topic("src=\ref[eliza.speaker.loc.loc];choice=Message;target=\ref[pda];pAI_mess=\"[object] \[Via pAI Unit\]",href_list)
return "Told [name], [object]."
/datum/text_parser/keyword/yes
+14 -3
View File
@@ -620,16 +620,16 @@
/obj/item/seeds/harebell
name = "pack of harebell seeds"
desc = "These seeds grow into pretty little flowers."
icon_state = "seed"
icon_state = "seed-harebell"
mypath = "/obj/item/seeds/harebell"
species = "harebell"
plantname = "Harebells"
productname = ""
productname = "/obj/item/weapon/reagent_containers/food/snacks/grown/harebell"
lifespan = 100
endurance = 20
maturation = 7
production = 1
yield = -1
yield = 2
potency = 1
oneharvest = 1
growthstages = 4
@@ -1058,6 +1058,7 @@
/obj/item/weapon/reagent_containers/food/snacks/grown/poppy
seed = "/obj/item/seeds/poppyseed"
name = "poppy"
desc = "Long-used as a symbol of rest, peace, and death."
icon_state = "poppy"
potency = 30
New()
@@ -1066,6 +1067,16 @@
reagents.add_reagent("bicaridine", 1+round((potency / 10), 1))
bitesize = 1+round(reagents.total_volume / 3, 1)
/obj/item/weapon/reagent_containers/food/snacks/grown/harebell
seed = "obj/item/seeds/harebellseed"
name = "harebell"
desc = "\"I'll sweeten thy sad grave: thou shalt not lack the flower that's like thy face, pale primrose, nor the azured hare-bell, like thy veins; no, nor the leaf of eglantine, whom not to slander, out-sweetend not thy breath.\""
icon_state = "harebell"
potency = 1
New()
..()
reagents.add_reagent("nutriment", 1+round((potency / 20), 1))
bitesize = 1+round(reagents.total_volume / 3, 1)
/obj/item/weapon/reagent_containers/food/snacks/grown/potato
seed = "/obj/item/seeds/potatoseed"
+4 -1
View File
@@ -741,7 +741,7 @@
/obj/item/weapon/extinguisher
name = "fire extinguisher"
desc = "Contains water for fighting fires."
desc = "A traditional red fire extinguisher."
icon = 'items.dmi'
icon_state = "fire_extinguisher0"
var/last_use = 1.0
@@ -760,6 +760,7 @@
name = "fire extinguisher"
desc = "A light and compact fibreglass-framed model fire extinguisher."
icon_state = "miniFE0"
hitsound = null //it is much lighter, after all.
flags = FPRINT | USEDELAY | TABLEPASS
throwforce = 5
w_class = 2.0
@@ -1511,6 +1512,7 @@ eternal248: Found broken and buggy Z-levels 7-12, ended up leading to my discove
desc = "You can drill using this item. You dig?"
icon = 'surgery.dmi'
icon_state = "drill"
hitsound = 'circsawhit.ogg'
flags = FPRINT | TABLEPASS | CONDUCT
force = 15.0
w_class = 1.0
@@ -1521,6 +1523,7 @@ eternal248: Found broken and buggy Z-levels 7-12, ended up leading to my discove
desc = "For heavy duty cutting."
icon = 'surgery.dmi'
icon_state = "saw3"
hitsound = 'circsawhit.ogg'
flags = FPRINT | TABLEPASS | CONDUCT
force = 15.0
w_class = 1.0
@@ -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&apos;ve been stung, until they try to speak and can&apos;t." // Man, fuck javascript. &apos; == '
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&apos;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)
+45 -44
View File
@@ -353,51 +353,52 @@ obj/machinery/computer/forensic_scanning
scan_data = null
updateDialog()
return
scan_process = 0
scan_name = scanning.name
scan_data = "<u>[scanning]</u><br><br>"
if (scanning.blood_DNA)
scan_data += "Blood Found:<br>"
for(var/blood in scanning.blood_DNA)
scan_data += "Blood type: [scanning.blood_DNA[blood]]\nDNA: [blood]<br><br>"
else
scan_data += "No Blood Found<br><br>"
if(!scanning.fingerprints)
scan_data += "No Fingerprints Found<br><br>"
else
var/list/L = scanning.fingerprints
scan_data += "Isolated [L.len] Fingerprints. Loaded into database.<br>"
add_data(scanning)
if(scanning)
scan_process = 0
scan_name = scanning.name
scan_data = "<u>[scanning]</u><br><br>"
if (scanning.blood_DNA)
scan_data += "Blood Found:<br>"
for(var/blood in scanning.blood_DNA)
scan_data += "Blood type: [scanning.blood_DNA[blood]]\nDNA: [blood]<br><br>"
else
scan_data += "No Blood Found<br><br>"
if(!scanning.fingerprints)
scan_data += "No Fingerprints Found<br><br>"
else
var/list/L = scanning.fingerprints
scan_data += "Isolated [L.len] Fingerprints. Loaded into database.<br>"
add_data(scanning)
if(!scanning.suit_fibers)
/*if(istype(scanning,/obj/item/device/detective_scanner))
var/obj/item/device/detective_scanner/scanner = scanning
if(scanner.stored_name)
scan_data += "Fibers/Materials Data - [scanner.stored_name]:<br>"
for(var/data in scanner.stored_fibers)
scan_data += "- [data]<br>"
else
scan_data += "No Fibers/Materials Data<br>"
else*/
scan_data += "No Fibers/Materials Located<br>"
else
/*if(istype(scanning,/obj/item/device/detective_scanner))
var/obj/item/device/detective_scanner/scanner = scanning
if(scanner.stored_name)
scan_data += "Fibers/Materials Data - [scanner.stored_name]:<br>"
for(var/data in scanner.stored_fibers)
scan_data += "- [data]<br>"
else
scan_data += "No Fibers/Materials Data<br>"*/
if(!scanning.suit_fibers)
/*if(istype(scanning,/obj/item/device/detective_scanner))
var/obj/item/device/detective_scanner/scanner = scanning
if(scanner.stored_name)
scan_data += "Fibers/Materials Data - [scanner.stored_name]:<br>"
for(var/data in scanner.stored_fibers)
scan_data += "- [data]<br>"
else
scan_data += "No Fibers/Materials Data<br>"
else*/
scan_data += "No Fibers/Materials Located<br>"
else
/*if(istype(scanning,/obj/item/device/detective_scanner))
var/obj/item/device/detective_scanner/scanner = scanning
if(scanner.stored_name)
scan_data += "Fibers/Materials Data - [scanner.stored_name]:<br>"
for(var/data in scanner.stored_fibers)
scan_data += "- [data]<br>"
else
scan_data += "No Fibers/Materials Data<br>"*/
scan_data += "Fibers/Materials Found:<br>"
for(var/data in scanning.suit_fibers)
scan_data += "- [data]<br>"
if(istype(scanning,/obj/item/device/detective_scanner))
scan_data += "<br><b>Data transfered from Scanner to Database.</b><br>"
add_data_scanner(scanning)
else if(!scanning.fingerprints)
scan_data += "<br><b><a href='?src=\ref[src];operation=add'>Add to Database?</a></b><br>"
scan_data += "Fibers/Materials Found:<br>"
for(var/data in scanning.suit_fibers)
scan_data += "- [data]<br>"
if(istype(scanning,/obj/item/device/detective_scanner))
scan_data += "<br><b>Data transfered from Scanner to Database.</b><br>"
add_data_scanner(scanning)
else if(!scanning.fingerprints)
scan_data += "<br><b><a href='?src=\ref[src];operation=add'>Add to Database?</a></b><br>"
else
temp = "Scan Failed: No Object"
@@ -467,7 +468,7 @@ obj/machinery/computer/forensic_scanning
if(!blood[main_blood])
blood[main_blood] = atom_blood_DNA[blood]
return 1
var/list/templist[2]
var/list/templist[3]
templist[1] = atom_suit_fibers
templist[2] = atom_blood_DNA
templist[3] = atom_name
+2
View File
@@ -210,6 +210,7 @@
verbs += /obj/admins/proc/adspawn //toggle admin item spawning
verbs += /client/proc/debug_variables
verbs += /client/proc/cmd_modify_ticker_variables
verbs += /client/proc/cmd_modify_ref_variables
verbs += /client/proc/Debug2 //debug toggle switch
verbs += /client/proc/toggle_view_range
verbs += /client/proc/Getmob
@@ -432,6 +433,7 @@
verbs -= /client/proc/radioalert
verbs -= /client/proc/rnd_check_designs
verbs -= /client/proc/CarbonCopy
verbs -= /client/proc/cmd_modify_ref_variables
verbs -= /proc/possess
verbs -= /proc/release
//verbs -= /client/proc/give_spell --Merged with view variables
@@ -11,6 +11,17 @@ var/list/forbidden_varedit_object_types = list(
src.modify_variables(O)
//feedback_add_details("admin_verb","EDITV") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/cmd_modify_ref_variables(var/target as text)
set category = "Debug"
set name = "Edit Variables (Reference)"
set desc="(target) Edit a target item's variables"
var/obj/I = locate(target)
if(!I)
usr << "ERROR: Object could not be located!"
return
src.modify_variables(I)
//feedback_add_details("admin_verb","EDITV") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/cmd_modify_ticker_variables()
set category = "Debug"
set name = "Edit Ticker Variables"
+25 -23
View File
@@ -102,7 +102,9 @@ datum
reagent_state = LIQUID
color = "#C80000" // rgb: 200, 0, 0
on_mob_life(var/mob/living/M)
if(istype(M, /mob/living/carbon/human) && blood_incompatible(data["blood_type"],M.dna.b_type))
if(!data || !data["blood_type"])
..()
else if(istype(M, /mob/living/carbon/human) && blood_incompatible(data["blood_type"],M.dna.b_type))
M.adjustToxLoss(rand(0.5,1.5))
M.adjustOxyLoss(rand(1,1.5))
..()
@@ -3111,98 +3113,98 @@ datum
description = "A spicy Vodka! Might be a little hot for the little guys!"
reagent_state = LIQUID
color = "#664300" // rgb: 102, 67, 0
on_mob_life(var/mob/living/M as mob)
if (M.bodytemperature < 360)
M.bodytemperature = min(360, M.bodytemperature+50) //310 is the normal bodytemp. 310.055
return
devilskiss
name = "Devils Kiss"
id = "devilskiss"
description = "Creepy time!"
reagent_state = LIQUID
color = "#A68310" // rgb: 166, 131, 16
red_mead
name = "Red Mead"
id = "red_mead"
description = "The true Viking drink! Even though it has a strange red color."
reagent_state = LIQUID
color = "#664300" // rgb: 102, 67, 0
mead
name = "Mead"
id = "mead"
description = "A Vikings drink, though a cheap one."
reagent_state = LIQUID
color = "#664300" // rgb: 102, 67, 0
iced_beer
name = "Iced Beer"
id = "iced_beer"
description = "A beer which is so cold the air around it freezes."
reagent_state = LIQUID
color = "#664300" // rgb: 102, 67, 0
on_mob_life(var/mob/living/M as mob)
if (M.bodytemperature < 270)
M.bodytemperature = min(270, M.bodytemperature-40) //310 is the normal bodytemp. 310.055
return
grog
name = "Grog"
id = "grog"
description = "Watered down rum, NanoTrasen approves!"
reagent_state = LIQUID
color = "#664300" // rgb: 102, 67, 0
aloe
name = "Aloe"
id = "aloe"
description = "So very, very, very good."
reagent_state = LIQUID
color = "#664300" // rgb: 102, 67, 0
andalusia
name = "Andalusia"
id = "andalusia"
description = "A nice, strange named drink."
reagent_state = LIQUID
color = "#664300" // rgb: 102, 67, 0
alliescocktail
name = "Allies Cocktail"
id = "alliescocktail"
description = "A drink made from your allies."
reagent_state = LIQUID
color = "#664300" // rgb: 102, 67, 0
acid_spit
name = "Acid Spit"
id = "acidspit"
description = "A drink by Nanotrasen. Made from live aliens."
reagent_state = LIQUID
color = "#365000" // rgb: 54, 80, 0
amasec
name = "Amasec"
id = "amasec"
description = "Official drink of the Imperium."
reagent_state = LIQUID
color = "#664300" // rgb: 102, 67, 0
on_mob_life(var/mob/living/M as mob)
M.stunned = 4
return
neurotoxin
name = "Neurotoxin"
id = "neurotoxin"
description = "A strong neurotoxin that puts the subject into a death-like state."
reagent_state = LIQUID
color = "#2E2E61" // rgb: 46, 46, 97
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
M:adjustOxyLoss(0.5)
@@ -3224,14 +3226,14 @@ datum
description = "A drink from Mime Heaven."
nutriment_factor = 1 * REAGENTS_METABOLISM
color = "#664300" // rgb: 102, 67, 0
changelingsting
name = "Changeling Sting"
id = "changelingsting"
description = "A stingy drink."
reagent_state = LIQUID
color = "#2E6671" // rgb: 46, 102, 113
on_mob_life(var/mob/living/M as mob)
if(!data) data = 1
data++
@@ -3243,14 +3245,14 @@ datum
M.confused = max(M:confused+15,15)
..()
return
irishcarbomb
name = "Irish Car Bomb"
id = "irishcarbomb"
description = "Mmm, tastes like chocolate cake..."
reagent_state = LIQUID
color = "#2E6671" // rgb: 46, 102, 113
on_mob_life(var/mob/living/M as mob)
if(!data) data = 1
data++
@@ -3262,14 +3264,14 @@ datum
M.confused = max(M:confused+15,15)
..()
return
syndicatebomb
name = "Syndicate Bomb"
id = "syndicatebomb"
description = "A Syndicate bomb"
reagent_state = LIQUID
color = "#2E6671" // rgb: 46, 102, 113
erikasurprise
name = "Erika Surprise"
id = "erikasurprise"
@@ -3416,4 +3418,4 @@ datum
holder.remove_reagent(src.id, 0.2)
data++
..()
return
return
+2
View File
@@ -116,6 +116,7 @@
item_state = "syndicate"
see_face = 0.0
flags = FPRINT | TABLEPASS | BLOCKHAIR
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES
/obj/item/clothing/head/chaplain_hood
name = "chaplain's hood"
@@ -142,4 +143,5 @@
item_state = "cardborg_h"
flags = FPRINT | TABLEPASS | HEADCOVERSEYES | HEADCOVERSMOUTH
see_face = 0.0
armor = list(melee = 0, bullet = 0, laser = 2,energy = 2, bomb = 0, bio = 0, rad = 0)
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES
-2
View File
@@ -32,8 +32,6 @@
item_state = "thunderdome"
armor = list(melee = 80, bullet = 60, laser = 50,energy = 10, bomb = 25, bio = 10, rad = 0)
/obj/item/clothing/head/helmet/welding
name = "welding helmet"
desc = "A head-mounted face cover designed to protect the wearer completely from space-arc eye."
+5 -5
View File
@@ -1,14 +1,14 @@
/obj/item/clothing/head/bomb_hood
name = "bomb hood"
desc = "Use in case of bomb."
desc = "A hood that protect from explosions. Also provides moderate protection."
icon_state = "bombsuit"
flags = FPRINT|TABLEPASS|HEADSPACE|HEADCOVERSEYES|HEADCOVERSMOUTH|BLOCKHAIR
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 100, bio = 0, rad = 0)
armor = list(melee = 10, bullet = 10, laser = 10, energy = 10, bomb = 100, bio = 0, rad = 0)
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES
/obj/item/clothing/suit/bomb_suit
name = "bomb suit"
desc = "A suit designed for safety when handling explosives."
desc = "A suit used for safely disposing explosives. Also provides moderate protection."
icon_state = "bombsuit"
item_state = "bombsuit"
w_class = 4//bulky item
@@ -17,8 +17,8 @@
heat_transfer_coefficient = 0.30
flags = FPRINT | TABLEPASS
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
slowdown = 2
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 100, bio = 0, rad = 0)
slowdown = 3.5 //To compensate for the extra armour.
armor = list(melee = 10, bullet = 10, laser = 10, energy = 10, bomb = 100, bio = 0, rad = 0)
flags_inv = HIDEJUMPSUIT
+3 -2
View File
@@ -15,14 +15,14 @@
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
/obj/item/clothing/suit/bluetag
name = "blue laser tag armour"
desc = "Blue Pride, Station Wide"
icon_state = "bluetag"
item_state = "bluetag"
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
allowed = list (/obj/item/weapon/gun/energy/laser/bluetag)
/obj/item/clothing/suit/redtag
name = "red laser tag armour"
@@ -30,6 +30,7 @@
icon_state = "redtag"
item_state = "redtag"
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
allowed = list (/obj/item/weapon/gun/energy/laser/redtag)
/obj/item/clothing/suit/storage/apron
+20 -1
View File
@@ -46,6 +46,12 @@
icon_state = "steve_johnson_1"
item_state = "steve_johnson_1"
/obj/item/fluff/david_fanning_1 //sicktrigger: David Fanning
name = "golden scalpel"
desc = "A fine surgical cutting tool covered in thin gold leaf. Does not seem able to cut anything."
icon_state = "david_fanning_1"
item_state = "david_fanning_1"
//////////////////////////////////
////////// Usable Items //////////
//////////////////////////////////
@@ -118,13 +124,19 @@
icon_state = "orangecamera"
pictures_left = 30
/obj/item/weapon/card/id/fluff/lifetime //fastler: Fastler Greay; it seemed like something multiple people would have
name = "Lifetime ID Card"
desc = "A modified ID card given only to those people who have devoted their lives to the better interests of NanoTrasen. It sparkles blue."
icon = 'custom_items.dmi'
icon_state = "lifetimeid"
/obj/item/weapon/reagent_containers/food/drinks/flask/fluff/shinyflask //lexusjjss: Lexus Langg & Zachary Tomlinson
name = "shiny flask"
desc = "A shiny metal flask. It appears to have a Greek symbol inscribed on it."
icon = 'custom_items.dmi'
icon_state = "shinyflask"
volume = 50
//////////////////////////////////
//////////// Clothing ////////////
//////////////////////////////////
@@ -176,6 +188,13 @@
icon = 'custom_items.dmi'
icon_state = "taryn_kifer_1"
/obj/item/clothing/head/fluff/enos_adlai_1 //roaper: Enos Adlai
name = "comfy cap"
desc = "Because when you're the toughest Mother Hubbard on the station, nobody's criticizing your fashion sense."
icon = 'custom_items.dmi'
icon_state = "enos_adlai_1"
flags = FPRINT|TABLEPASS
//////////// Suits ////////////
/obj/item/clothing/suit/storage/labcoat/fluff/pink //spaceman96: Trenna Seber
+62 -66
View File
@@ -477,28 +477,21 @@
proc/start_close()
if(parent.robot)
return
sleep(rand(1800,3000)) //3-5 minutes
if(prob(50) && wound_size == 1)
parent.wounds.Remove(src)
update_health(1)
del(src)
else if(prob(33) && wound_size < 3)
stopbleeding()
return
sleep(rand(1800,3000))
if(wound_size == 1) //Small cuts heal in 6-10 minutes.
parent.wounds.Remove(src)
update_health(1)
del(src)
else if(prob(50) && wound_size < 5 && bleeding)
stopbleeding()
return
if(wound_size < 5 && bleeding) //Give it a chance to stop bleeding on it's own.
spawn while(1)
sleep(1200)
if(prob(50))
stopbleeding()
return
spawn(rand(1800,3000)) //3-5 minutes
if(prob(50) && wound_size == 1)
parent.wounds.Remove(src)
update_health(1)
del(src)
else if(prob(33) && wound_size < 3)
stopbleeding()
else
spawn(rand(1800,3000))
if(wound_size == 1) //Small cuts heal in 6-10 minutes.
parent.wounds.Remove(src)
update_health(1)
del(src)
else if(prob(50) && wound_size < 3 && bleeding)
stopbleeding()
return
proc/stopbleeding(var/bleed = 0)
@@ -518,60 +511,60 @@
return 1
proc/become_scar()
if(parent.robot)
if(parent.robot || healing_state)
return
healing_state = 1 //Patched
spawn(200*slowheal) //~20-60 seconds
update_health(5) //Heals some.
sleep(rand(1800,3000)*slowheal) //3-5 minutes
if(!parent || !parent.owner || parent.owner.stat == 2)
if(!parent || !parent.owner)
del(parent)
spawn(rand(180,300)*slowheal) //18-30 second
if(!parent || !parent.owner || parent.owner.stat == 2)
if(!parent || !parent.owner)
del(parent)
del(src)
return
if(prob(80) && wound_size < 2) //Small cuts heal.
update_health(1)
parent.wounds.Remove(src)
del(src)
return
if(prob(80) && wound_size < 2) //Small cuts heal.
update_health(1)
parent.wounds.Remove(src)
del(src)
healing_state = 2 //Noticibly healing.
update_health(2) //Heals more.
healing_state = 2 //Noticibly healing.
update_health(2) //Heals more.
sleep(rand(1800,3000)*slowheal) //3-5 minutes
if(!parent || !parent.owner || parent.owner.stat == 2)
if(!parent || !parent.owner)
del(parent)
del(src)
return
if(prob(60) && wound_size < 3) //Cuts heal up
parent.wounds.Remove(src)
del(src)
healing_state = 3 //Angry red scar
update_health(1) //Heals the rest of the way.
spawn(rand(1200,1800)*slowheal) //2-3 minutes
if(!parent || !parent.owner || parent.owner.stat == 2)
if(!parent || !parent.owner)
del(parent)
del(src)
return
if(prob(60) && wound_size < 3) //Cuts heal up
parent.wounds.Remove(src)
del(src)
healing_state = 3 //Angry red scar
update_health(1) //Heals the rest of the way.
sleep(rand(6000,9000)*slowheal) //10-15 minutes
if(!parent || !parent.owner || parent.owner.stat == 2)
if(!parent || !parent.owner)
del(parent)
del(src)
return
if(prob(80) && wound_size < 4) //Minor wounds heal up fully.
parent.wounds.Remove(src)
del(src)
healing_state = 4 //Scar
sleep(rand(6000,9000)*slowheal) //10-15 minutes
if(!parent || !parent.owner || parent.owner.stat == 2)
if(!parent || !parent.owner)
del(parent)
del(src)
return
if(prob(30) || wound_size < 4 || wound_type == 1) //Small chance for the scar to disappear, any small remaining wounds deleted.
parent.wounds.Remove(src)
del(src)
healing_state = 5 //Faded scar
spawn(rand(6000,9000)*slowheal) //10-15 minutes
if(!parent || !parent.owner || parent.owner.stat == 2)
if(!parent || !parent.owner)
del(parent)
del(src)
return
if(prob(80) && wound_size < 4) //Minor wounds heal up fully.
parent.wounds.Remove(src)
del(src)
healing_state = 4 //Scar.
spawn(rand(6000,9000)*slowheal) //10-15 minutes
if(!parent || !parent.owner || parent.owner.stat == 2)
if(!parent || !parent.owner)
del(parent)
del(src)
return
if(prob(30) || wound_size < 4 || wound_type == 1) //Small chance for the scar to disappear, any small remaining wounds deleted.
parent.wounds.Remove(src)
del(src)
healing_state = 5 //Faded scar
return
proc/update_health(var/percent = 1)
@@ -584,6 +577,9 @@
parent.brute_dam = max(parent.brute_dam - (initial_dmg - damage),0)
initial_dmg = damage //reset it for further updates.
parent.owner.updatehealth()
if(percent == 1 && wound_type == 1)
parent.wounds.Remove(src)
del(src)
@@ -1,8 +1,8 @@
/obj/item/weapon/gun/energy/laser
name = "laser gun"
desc = "a basic weapon designed kill with concentrated energy bolts"
desc = "A basic weapon designed kill with concentrated energy bolts."
icon_state = "laser"
item_state = "laser"
item_state = "laser100"
fire_sound = 'Laser.ogg'
w_class = 3.0
m_amt = 2000
@@ -23,8 +23,9 @@ obj/item/weapon/gun/energy/laser/retro
/obj/item/weapon/gun/energy/laser/captain
icon_state = "caplaser"
desc = "This is an antique laser gun. All craftsmanship is of the highest quality. It is decorated with assistant leather and chrome. The object menaces with spikes of energy. On the item is an image of Space Station 13. The station is exploding."
icon_state = "caplaser"
item_state = "laser"
force = 10
origin_tech = null
var/charge_tick = 0
@@ -71,6 +72,7 @@ obj/item/weapon/gun/energy/laser/retro
name = "laser cannon"
desc = "With the L.A.S.E.R. cannon, the lasing medium is enclosed in a tube lined with uranium-235 and subjected to high neutron flux in a nuclear reactor core. This incredible technology may help YOU achieve high excitation rates with small laser volumes!"
icon_state = "lasercannon"
item_state = "laser100"
fire_sound = 'lasercannonfire.ogg'
origin_tech = "combat=4;materials=3;powerstorage=3"
projectile_type = "/obj/item/projectile/beam/heavylaser"
@@ -86,6 +88,8 @@ obj/item/weapon/gun/energy/laser/retro
icon_state = "bluetag"
desc = "Standard issue weapon of the Imperial Guard"
projectile_type = "/obj/item/projectile/bluetag"
origin_tech = "combat=1;magnets=2"
var/charge_tick = 0
special_check(var/mob/living/carbon/human/M)
if(ishuman(M))
@@ -93,8 +97,6 @@ obj/item/weapon/gun/energy/laser/retro
return 1
M << "\red You need to be wearing your laser tag vest!"
return 0
var/charge_tick = 0
New()
..()
@@ -122,6 +124,7 @@ obj/item/weapon/gun/energy/laser/retro
icon_state = "redtag"
desc = "Standard issue weapon of the Imperial Guard"
projectile_type = "/obj/item/projectile/redtag"
origin_tech = "combat=1;magnets=2"
var/charge_tick = 0
special_check(var/mob/living/carbon/human/M)
@@ -42,6 +42,7 @@
origin_tech = "combat=3;materials=5;powerstorage=3"
var/lightfail = 0
icon_state = "nucgun"
item_state = "nucgun100"
var/charge_tick = 0
New()
@@ -2,6 +2,7 @@
name = "\improper Pulse Rifle"
desc = "A heavy-duty, pulse-based energy weapon, preferred by front-line combat personnel."
icon_state = "pulse"
item_state = "pulse100"
force = 10
fire_sound = 'pulse.ogg'
charge_cost = 200
@@ -50,6 +51,7 @@
name = "\improper M1911-P"
desc = "It's not the size of the gun, it's the size of the hole it puts through people."
icon_state = "m1911-p"
item_state = "gun"
cell_type = "/obj/item/weapon/cell/infinite"
+2
View File
@@ -173,6 +173,8 @@
fired()
var/turf/curloc = get_turf(src)
var/turf/targloc = get_turf(target)
if(!curloc || !targloc)
return 0
yo = targloc.y - curloc.y
xo = targloc.x - curloc.x
target = targloc
+30
View File
@@ -0,0 +1,30 @@
Create a databse at the same location where the server MySQL databse is. (as defined in config/dbconfig.txt under ADDRESS and PORT) It can be a separate database or the same one, as you wish. Create the following table in it: (name needs to remain as 'erro_feedback')
CREATE TABLE IF NOT EXISTS `erro_feedback` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`time` datetime NOT NULL,
`round_id` int(8) NOT NULL,
`var_name` varchar(32) NOT NULL,
`var_value` int(16) DEFAULT NULL,
`details` text,
PRIMARY KEY (`id`)
);
Open the file config/dbconfig.txt and edit the following lines:
FEEDBACK_DATABASE test
FEEDBACK_LOGIN mylogin
FEEDBACK_PASSWORD mypassword
+10 -8
View File
@@ -3,28 +3,31 @@ atomicdog92: Seth Sealis: /obj/item/clothing/suit/storage/det_suit/fluff/leather
chinsky: Victor Kaminski: /obj/item/fluff/victor_kaminsky_1
chinsky: Summer Springfield: /obj/item/weapon/camera_test/fluff/orange
compactninja: Ysyr Rylias: /obj/item/weapon/reagent_containers/food/drinks/dry_ramen, /obj/item/weapon/reagent_containers/food/drinks/dry_ramen, /obj/item/weapon/reagent_containers/food/drinks/dry_ramen, /obj/item/weapon/reagent_containers/food/drinks/dry_ramen
desiderium: Momiji Inubashiri: /obj/item/clothing/under/fluff/olddressuniform
desiderium: Rook Maudlin: /obj/item/clothing/suit/storage/det_suit/fluff/retpolcoat, /obj/item/clothing/head/det_hat/fluff/retpolcap, /obj/item/clothing/under/det/fluff/retpoluniform
deusdactyl: Greg Anderson: /obj/item/clothing/head/helmet/hardhat/fluff/greg_anderson_1
deusdactyl: Roger Wiles: /obj/item/clothing/under/rank/virologist/fluff/cdc_jumpsuit, /obj/item/clothing/suit/storage/labcoat/fluff/cdc_labcoat
deusdactyl: James Girard: /obj/item/clothing/head/secsoft/fluff/swatcap
eternal248: Maximilian Haynes: /obj/item/weapon/paper/certificate
erthilo: Farah Lants: /obj/item/clothing/under/rank/medical/fluff/short, /obj/item/clothing/suit/storage/labcoat/fluff/red
fastler: Fastler Greay: /obj/item/weapon/card/id/fluff/lifetime
fniff: Sarah Calvera: /obj/item/fluff/sarah_calvera_1
fniff: Angleo Wilkerson: /obj/item/fluff/angelo_wilkerson_1
gvazdas: Sarah Carbrokes: /obj/item/fluff/sarah_carbrokes_1
leonheart11: Johann Erzatz: /obj/item/weapon/reagent_containers/food/drinks/flask/fluff/johann_erzatz_1
lexusjjss: Lexus Langg: /obj/item/weapon/clipboard/fluff/smallnote
lexusjjss: Zachary Tomlinson: /obj/item/weapon/clipboard/fluff/smallnote
lexusjjss: Lexus Langg: /obj/item/weapon/clipboard/fluff/smallnote, /obj/item/weapon/reagent_containers/food/drinks/flask/fluff/shinyflask
lexusjjss: Zachary Tomlinson: /obj/item/weapon/clipboard/fluff/smallnote, /obj/item/weapon/reagent_containers/food/drinks/flask/fluff/shinyflask
madmalicemccrea: Alice McCrea: /obj/item/clothing/head/helmet/welding/fluff/alice_mccrea_1
mangled: Li Tsun: /obj/item/weapon/lighter/zippo/fluff/li_tsun_1
misterfox: Rashid Siraj: /obj/item/weapon/storage/bible/tajaran
morrinn: Maye Day: /obj/item/weapon/storage/fluff/maye_daye_1
orangebottle: Lillian Levett: /obj/item/weapon/pen/fluff/fancypen
orangebottle: Lilliana Reade: /obj/item/weapon/pen/fluff/fancypen
fniff: Sarah Calvera: /obj/item/fluff/sarah_calvera_1
fniff: Angleo Wilkerson: /obj/item/fluff/angelo_wilkerson_1
desiderium: Momiji Inubashiri: /obj/item/clothing/under/fluff/olddressuniform
desiderium: Rook Maudlin: /obj/item/clothing/suit/storage/det_suit/fluff/retpolcoat, /obj/item/clothing/head/det_hat/fluff/retpolcap, /obj/item/clothing/under/det/fluff/retpoluniform
roaper: Enos Adlai: /obj/item/clothing/head/fluff/enos_adlai_1
searif: Yuki Matsuda: /obj/item/clothing/under/fluff/jumpsuitdown, /obj/item/clothing/head/helmet/welding/fluff/yuki_matsuda_1
searif: Tsiokeriio Tarbell: /obj/item/clothing/mask/fluff/flagmask
serithi: Serithi Artalis: /obj/item/clothing/glasses/fluff/serithi_artalis_1, /obj/item/clothing/shoes/fluff/leatherboots
sicktrigger: David Fanning: /obj/item/fluff/david_fanning_1
silentthunder: Val McNeil: /obj/item/fluff/val_mcneil_1
spaceman96: Trenna Seber: /obj/item/weapon/pen/fluff/multi, /obj/item/clothing/suit/storage/labcoat/fluff/pink
sparklysheep: Cado Keppel: /obj/item/weapon/fluff/cado_keppel_1
@@ -34,5 +37,4 @@ thebreadbocks: Steve Johnson: /obj/item/fluff/steve_johnson_1
themij: Taryn Kifer: /obj/item/clothing/head/helmet/greenbandana/fluff/taryn_kifer_1
tzefa: Wes Solari: /obj/item/fluff/wes_solari_1
vinceluk: Seth Sealis: /obj/item/clothing/suit/storage/det_suit/fluff/graycoat
whitellama: Ethan Way: /obj/item/fluff/ethan_way_1
fastler: Fastler Greay: /obj/item/weapon/card/id/fluff/lifetimeid
whitellama: Ethan Way: /obj/item/fluff/ethan_way_1
+4 -6
View File
@@ -1,11 +1,9 @@
<h1>Welcome to Space Station 13!</h1>
<h1>Welcome to Baystation 12!</h1>
<i>This server is running Baystation 12's modification of the /tg/station13 code.</i>
<i>This server is running <a href="http://baystation12.net/">Baystation 12's</a> modification of the <a href="http://nanotrasen.com/">/tg/station13</a> code.</i>
<br><br>
<strong>Bugtracker:</strong> <a href="https://github.com/Baystation12/Baystation12/issues">https://github.com/Baystation12/Baystation12/issues</a>
<br>
<strong>Changelog:</strong> <a href="http://baystation12.net/wiki/index.php/Changelog">http://baystation12.net/wiki/index.php/Changelog</a> or the Changelog command.
<br>
<strong>Rules:</strong> <a href="http://baystation12.net/wiki/index.php/Rules">http://baystation12.net/wiki/index.php/Rules</a> or the Rules command.
<strong>Rules and Roleplaying Tips:</strong> <a href="http://baystation12.net/wiki/index.php/Rules">http://baystation12.net/wiki/index.php/Rules</a> or the Rules command.
<br><br>
By playing you agree to read and abide by the rules!
This is a roleplaying server, so don't forget to remain in character when not in OOC. By playing you agree to have read and abide by the rules!
+11
View File
@@ -47,6 +47,17 @@ Stuff which is in development and not yet visible to players or just code relate
should be listed in the changelog upon commit though. Thanks. -->
<!-- To take advantage of the pretty new format (well it was new when I wrote this anyway), open the "add-to-changelog.html" file in any browser and add the stuff and then generate the html code and paste it here -->
<div class="commit sansserif">
<h2 class="date">13 May 2012</h2>
<h3 class="author">TG updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Harebells can now be harvested.</li>
<li class="imageadd">New sprites for mass-spectrometers and advanced mass-spectrometers.</li>
<li class="imageadd">New sprites for the SMES. Credit to Flashkirby99!</li>
<li class="soundadd">New sound effects for circular saws and surgical drills.</li>
</ul>
</div>
<div class="commit sansserif">
<h2 class="date">10 May 2012</h2>
<h3 class="author">Erthilo updated:</h3>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 94 KiB

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 122 KiB

After

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 122 KiB

After

Width:  |  Height:  |  Size: 128 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 248 KiB

After

Width:  |  Height:  |  Size: 253 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 130 KiB

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

+12 -13
View File
@@ -22,15 +22,14 @@
"v" = (/obj/item/brain,/turf/simulated/floor{icon_state = "whiteshiny"},/area/turret_protected/AssistantRoom)
"w" = (/obj/item/weapon/gun/energy/laser/captain,/turf/simulated/floor{icon_state = "whiteshiny"},/area/turret_protected/AssistantRoom)
"x" = (/obj/item/weapon/gun/projectile/deagle/gold,/turf/simulated/floor{icon_state = "whiteshiny"},/area/turret_protected/AssistantRoom)
"y" = (/obj/item/weapon/sord,/turf/simulated/floor{icon_state = "whiteshiny"},/area/turret_protected/AssistantRoom)
"z" = (/obj/item/weapon/gun/energy/lasercannon,/turf/simulated/floor{icon_state = "whiteshiny"},/area/turret_protected/AssistantRoom)
"A" = (/obj/item/weapon/gun/energy/crossbow/largecrossbow,/turf/simulated/floor{icon_state = "whiteshiny"},/area/turret_protected/AssistantRoom)
"B" = (/obj/item/weapon/gun/energy/pulse_rifle/destroyer,/turf/simulated/floor{icon_state = "whiteshiny"},/area/turret_protected/AssistantRoom)
"C" = (/obj/item/toy/spinningtoy,/turf/simulated/floor{icon_state = "whiteshiny"},/area/turret_protected/AssistantRoom)
"D" = (/obj/item/weapon/card/id/centcom,/turf/simulated/floor{icon_state = "whiteshiny"},/area/turret_protected/AssistantRoom)
"E" = (/obj/item/weapon/gun/grenadelauncher,/turf/simulated/floor{icon_state = "whiteshiny"},/area/turret_protected/AssistantRoom)
"F" = (/obj/item/weapon/chemsprayer,/turf/simulated/floor{icon_state = "whiteshiny"},/area/turret_protected/AssistantRoom)
"G" = (/obj/machinery/turret{dir = 8; lasers = 1; name = "Angry Turret"},/obj/machinery/light,/turf/simulated/floor{icon_state = "whiteshiny"},/area/turret_protected/AssistantRoom)
"y" = (/obj/item/weapon/gun/energy/lasercannon,/turf/simulated/floor{icon_state = "whiteshiny"},/area/turret_protected/AssistantRoom)
"z" = (/obj/item/weapon/gun/energy/crossbow/largecrossbow,/turf/simulated/floor{icon_state = "whiteshiny"},/area/turret_protected/AssistantRoom)
"A" = (/obj/item/weapon/gun/energy/pulse_rifle/destroyer,/turf/simulated/floor{icon_state = "whiteshiny"},/area/turret_protected/AssistantRoom)
"B" = (/obj/item/toy/spinningtoy,/turf/simulated/floor{icon_state = "whiteshiny"},/area/turret_protected/AssistantRoom)
"C" = (/obj/item/weapon/card/id/centcom,/turf/simulated/floor{icon_state = "whiteshiny"},/area/turret_protected/AssistantRoom)
"D" = (/obj/item/weapon/gun/grenadelauncher,/turf/simulated/floor{icon_state = "whiteshiny"},/area/turret_protected/AssistantRoom)
"E" = (/obj/item/weapon/chemsprayer,/turf/simulated/floor{icon_state = "whiteshiny"},/area/turret_protected/AssistantRoom)
"F" = (/obj/machinery/turret{dir = 8; lasers = 1; name = "Angry Turret"},/obj/machinery/light,/turf/simulated/floor{icon_state = "whiteshiny"},/area/turret_protected/AssistantRoom)
(1,1,1) = {"
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -48,10 +47,10 @@ aaaaaaaaabccddddddccbaaaaaaaaa
aaaaaaaaabcefghijklcbaaaaaaaaa
aaaaaaaaabcemnopqrlcbaaaaaaaaa
aaaaaaaaabcestquvqlcbaaaaaaaaa
aaaaaaaaabcewqqxqylcbaaaaaaaaa
aaaaaaaaabceqzAqBqlcbaaaaaaaaa
aaaaaaaaabceCqDqEFlcbaaaaaaaaa
aaaaaaaaabccGGGGGGccbaaaaaaaaa
aaaaaaaaabcewqqxqqlcbaaaaaaaaa
aaaaaaaaabceqyzqAqlcbaaaaaaaaa
aaaaaaaaabceBqCqDElcbaaaaaaaaa
aaaaaaaaabccFFFFFFccbaaaaaaaaa
aaaaaaaaabccccccccccbaaaaaaaaa
aaaaaaaaabbbbbbbbbbbbaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+8023 -8013
View File
File diff suppressed because it is too large Load Diff
Binary file not shown.