Merge branch 'Bleeding-Edge' of github.com:d3athrow/vgstation13 into Bleeding-Edge

This commit is contained in:
Rob Nelson
2014-03-20 23:38:31 -07:00
9 changed files with 453 additions and 38 deletions

View File

@@ -128,7 +128,7 @@ datum/pipeline
var/datum/gas_mixture/air_sample = air.remove_ratio(mingle_volume/air.volume)
air_sample.volume = mingle_volume
if(istype(target) && target.zone)
if(istype(target) && target.zone && !iscatwalk(target))
//Have to consider preservation of group statuses
var/datum/gas_mixture/turf_copy = new
@@ -149,7 +149,7 @@ datum/pipeline
air.merge(air_sample)
//turf_air already modified by equalize_gases()
if(istype(target) && !target.processing)
if(istype(target) && !target.processing && !iscatwalk(target))
if(target.air)
if(target.air.check_tile_graphic())
target.update_visuals(target.air)

View File

@@ -50,7 +50,7 @@
..()
else
var/environment_temperature = 0
if(istype(loc, /turf/simulated/))
if(istype(loc, /turf/simulated/) && !iscatwalk(loc))
if(loc:blocks_air)
environment_temperature = loc:temperature
else

View File

@@ -153,7 +153,7 @@
/turf/simulated/assume_air(datum/gas_mixture/giver)
if(!giver) return 0
if(zone)
if(zone && zone.air && !iscatwalk(src))
zone.air.merge(giver)
return 1
else
@@ -222,7 +222,7 @@
for(var/connection/C in air_master.turfs_with_connections["\ref[src]"])
air_master.connections_to_check |= C
if(zone && !zone.rebuild)
if(zone && istype(zone.air) && !zone.rebuild)
if(zone.air.check_tile_graphic())
update_visuals(zone.air)
for(var/direction in cardinal)

View File

@@ -1487,4 +1487,9 @@ proc/rotate_icon(file, state, step = 1, aa = FALSE)
if(aa) temp.Scale(w, h)
result.Insert(temp, "[angle]")
return result
return result
/proc/iscatwalk(atom/A)
if(istype(A, /turf/simulated/floor/plating/airless/catwalk))
return 1
return 0

View File

@@ -141,7 +141,7 @@
H.updatehealth() //forces a health update, otherwise the oxyloss adjustment wouldnt do anything
M.visible_message("\red [M]'s body convulses a bit.")
var/datum/organ/external/temp = H.get_organ("head")
if(H.health > -100 && !(temp.status & ORGAN_DESTROYED) && !(M_NOCLONE in H.mutations) && !H.suiciding)
if(H.health > -100 && !(temp.status & ORGAN_DESTROYED) && !(M_NOCLONE in H.mutations) && !H.suiciding && (H.brain_op_stage < 4))
viewers(M) << "\blue [src] beeps: Resuscitation successful."
spawn(0)
H.stat = 1

View File

@@ -461,6 +461,209 @@
block = SMALLSIZEBLOCK
..()
/obj/item/weapon/dnainjector/sober
name = "DNA-Injector (Sober)"
desc = "Makes you not fun."
datatype = DNA2_BUF_SE
value = 0xFFF
//block = 2
New()
block = SOBERBLOCK
..()
/obj/item/weapon/dnainjector/antisober
name = "DNA-Injector (Anti-Sober)"
desc = "Makes you fun as hell."
datatype = DNA2_BUF_SE
value = 0x001
//block = 2
New()
block = SOBERBLOCK
..()
/obj/item/weapon/dnainjector/psychic_resist
name = "DNA-Injector (Psychic Resist)"
desc = "Not today, mind hippies."
datatype = DNA2_BUF_SE
value = 0xFFF
//block = 2
New()
block = PSYRESISTBLOCK
..()
/obj/item/weapon/dnainjector/antipsychic_resist
name = "DNA-Injector (Anti-Psychic Resist)"
desc = "Im thinking about furry porn 24/7. Come at me, faggots."
datatype = DNA2_BUF_SE
value = 0x001
//block = 2
New()
block = PSYRESISTBLOCK
..()
/obj/item/weapon/dnainjector/darkcloak
name = "DNA-Injector (Dark Cloak)"
desc = "BLEH BLEH, I AM HERE TO SUCK YOUR BLOOD!"
datatype = DNA2_BUF_SE
value = 0xFFF
//block = 2
New()
block = SHADOWBLOCK
..()
/obj/item/weapon/dnainjector/antidarkcloak
name = "DNA-Injector (Anti-Dark Cloak)"
desc = "THE LIGHT, IT BUUURNS!"
datatype = DNA2_BUF_SE
value = 0x001
//block = 2
New()
block = SHADOWBLOCK
..()
/obj/item/weapon/dnainjector/chameleon
name = "DNA-Injector (Chameleon)"
desc = "You cant see me."
datatype = DNA2_BUF_SE
value = 0xFFF
//block = 2
New()
block = CHAMELEONBLOCK
..()
/obj/item/weapon/dnainjector/antichameleon
name = "DNA-Injector (Anti-Chameleon)"
desc = "OH GOD EVERYONE CAN SEE ME!"
datatype = DNA2_BUF_SE
value = 0x001
//block = 2
New()
block = CHAMELEONBLOCK
..()
/obj/item/weapon/dnainjector/cryo
name = "DNA-Injector (Cryokinesis)"
desc = "Its about to get chilly."
datatype = DNA2_BUF_SE
value = 0xFFF
//block = 2
New()
block = CRYOBLOCK
..()
/obj/item/weapon/dnainjector/anticryo
name = "DNA-Injector (Anti-Cryokinesis)"
desc = "Fuck, its hot in here!"
datatype = DNA2_BUF_SE
value = 0x001
//block = 2
New()
block = CRYOBLOCK
..()
/obj/item/weapon/dnainjector/mattereater
name = "DNA-Injector (Matter Eater)"
desc = "OM NOM NOM."
datatype = DNA2_BUF_SE
value = 0xFFF
//block = 2
New()
block = EATBLOCK
..()
/obj/item/weapon/dnainjector/antimattereater
name = "DNA-Injector (Anti-Matter Eater)"
desc = "Oh god I'm gonna puke."
datatype = DNA2_BUF_SE
value = 0x001
//block = 2
New()
block = EATBLOCK
..()
/obj/item/weapon/dnainjector/jumpy
name = "DNA-Injector (Jumpy)"
desc = "WEEEEEEEEEEEE!"
datatype = DNA2_BUF_SE
value = 0xFFF
//block = 2
New()
block = JUMPBLOCK
..()
/obj/item/weapon/dnainjector/antijumpy
name = "DNA-Injector (Anti-Jumpy)"
desc = "Awwe.."
datatype = DNA2_BUF_SE
value = 0x001
//block = 2
New()
block = JUMPBLOCK
..()
/obj/item/weapon/dnainjector/polymorph
name = "DNA-Injector (Polymorph)"
desc = "A clone of myself? Now neither of us will be virgins!"
datatype = DNA2_BUF_SE
value = 0xFFF
//block = 2
New()
block = POLYMORPHBLOCK
..()
/obj/item/weapon/dnainjector/antipolymorph
name = "DNA-Injector (Anti-Polymorph)"
desc = "Damn, friendzoned by my own clone."
datatype = DNA2_BUF_SE
value = 0x001
//block = 2
New()
block = POLYMORPHBLOCK
..()
/obj/item/weapon/dnainjector/empath
name = "DNA-Injector (Empathic Thought)"
desc = "What will I have for dinner?"
datatype = DNA2_BUF_SE
value = 0xFFF
//block = 2
New()
block = EMPATHBLOCK
..()
/obj/item/weapon/dnainjector/antiempath
name = "DNA-Injector (Anti-Empathic Thought)"
desc = "Damn tin foil hats."
datatype = DNA2_BUF_SE
value = 0x001
//block = 2
New()
block = EMPATHBLOCK
..()
/obj/item/weapon/dnainjector/superfart
name = "DNA-Injector (Super Fart)"
desc = "Really?"
datatype = DNA2_BUF_SE
value = 0xFFF
//block = 2
New()
block = SUPERFARTBLOCK
..()
/obj/item/weapon/dnainjector/antisuperfart
name = "DNA-Injector (Anti-Super Fart)"
desc = "No, really!?"
datatype = DNA2_BUF_SE
value = 0x001
//block = 2
New()
block = SUPERFARTBLOCK
..()
/////////////////////////////////////
/obj/item/weapon/dnainjector/antiglasses
name = "DNA-Injector (Anti-Glasses)"
@@ -660,4 +863,208 @@
//block = 14
New()
block = MONKEYBLOCK
..()
..()
/obj/item/weapon/dnainjector/mute
name = "DNA-Injector (Mute)"
desc = "Hell."
datatype = DNA2_BUF_SE
value = 0xFFF
//block = 14
New()
block = MUTEBLOCK
..()
/obj/item/weapon/dnainjector/antimute
name = "DNA-Injector (Anti-Mute)"
desc = "Shut up."
datatype = DNA2_BUF_SE
value = 0x001
//block = 14
New()
block = MUTEBLOCK
..()
/obj/item/weapon/dnainjector/radioactive
name = "DNA-Injector (Radioactive)"
desc = "Welcome to the new age."
datatype = DNA2_BUF_SE
value = 0xFFF
//block = 14
New()
block = RADBLOCK
..()
/obj/item/weapon/dnainjector/antiradioactive
name = "DNA-Injector (Anti-Radioactive)"
desc = "All systems go."
datatype = DNA2_BUF_SE
value = 0x001
//block = 14
New()
block = RADBLOCK
..()
/obj/item/weapon/dnainjector/fat
name = "DNA-Injector (Fat)"
desc = "Gives you big bones."
datatype = DNA2_BUF_SE
value = 0xFFF
//block = 14
New()
block = FATBLOCK
..()
/obj/item/weapon/dnainjector/antifat
name = "DNA-Injector (Anti-Fat)"
desc = "Feeds you subway."
datatype = DNA2_BUF_SE
value = 0x001
//block = 14
New()
block = FATBLOCK
..()
/obj/item/weapon/dnainjector/chav
name = "DNA-Injector (Chav)"
desc = "Makes you a real arsehole."
datatype = DNA2_BUF_SE
value = 0xFFF
//block = 14
New()
block = CHAVBLOCK
..()
/obj/item/weapon/dnainjector/antichav
name = "DNA-Injector (Anti-Chav)"
desc = "Put it back, I liked you better that way."
datatype = DNA2_BUF_SE
value = 0x001
//block = 14
New()
block = CHAVBLOCK
..()
/obj/item/weapon/dnainjector/sweedish
name = "DNA-Injector (Sweedish)"
desc = "BORK! BORK! BORK!"
datatype = DNA2_BUF_SE
value = 0xFFF
//block = 14
New()
block = SWEDEBLOCK
..()
/obj/item/weapon/dnainjector/antisweedish
name = "DNA-Injector (Anti-Sweedish)"
desc = "You're no fun."
datatype = DNA2_BUF_SE
value = 0x001
//block = 14
New()
block = SWEDEBLOCK
..()
/obj/item/weapon/dnainjector/unintelligable
name = "DNA-Injector (Unintelligable)"
desc = "At?wh"
datatype = DNA2_BUF_SE
value = 0xFFF
//block = 14
New()
block = SCRAMBLEBLOCK
..()
/obj/item/weapon/dnainjector/antiunintelligable
name = "DNA-Injector (Anti-Unintelligable)"
desc = "What?"
datatype = DNA2_BUF_SE
value = 0x001
//block = 14
New()
block = SCRAMBLEBLOCK
..()
/obj/item/weapon/dnainjector/strong
name = "DNA-Injector (Strong)"
desc = "HEY BRO, WANNA HIT THE GYM?"
datatype = DNA2_BUF_SE
value = 0xFFF
//block = 14
New()
block = STRONGBLOCK
..()
/obj/item/weapon/dnainjector/antistrong
name = "DNA-Injector (Anti-Strong)"
desc = "Spot me!"
datatype = DNA2_BUF_SE
value = 0x001
//block = 14
New()
block = STRONGBLOCK
..()
/obj/item/weapon/dnainjector/horns
name = "DNA-Injector (Horns)"
desc = "Feelin' horny?"
datatype = DNA2_BUF_SE
value = 0xFFF
//block = 14
New()
block = HORNSBLOCK
..()
/obj/item/weapon/dnainjector/antihorns
name = "DNA-Injector (Anti-Horns)"
desc = "Right, lets just watch Law & Order."
datatype = DNA2_BUF_SE
value = 0x001
//block = 14
New()
block = HORNSBLOCK
..()
/obj/item/weapon/dnainjector/immolate
name = "DNA-Injector (Immolate)"
desc = "We didn't start the fire."
datatype = DNA2_BUF_SE
value = 0xFFF
//block = 14
New()
block = IMMOLATEBLOCK
..()
/obj/item/weapon/dnainjector/antiimmolate
name = "DNA-Injector (Anti-Immolate)"
desc = "It was always burnin' since the world was turnin'"
datatype = DNA2_BUF_SE
value = 0x001
//block = 14
New()
block = IMMOLATEBLOCK
..()
/obj/item/weapon/dnainjector/melt
name = "DNA-Injector (Dissolve)"
desc = "Win the game."
datatype = DNA2_BUF_SE
value = 0xFFF
//block = 14
New()
block = MELTBLOCK
..()
/obj/item/weapon/dnainjector/antimelt
name = "DNA-Injector (Dissolve)"
desc = "You just lost the game."
datatype = DNA2_BUF_SE
value = 0x001
//block = 14
New()
block = MELTBLOCK
..()

View File

@@ -32,7 +32,7 @@
title = "Particle Accelerator User's Guide"
//big pile of shit below.
/*dat = {"<html>
dat = {"<html>
<head>
<style>
h1 {font-size: 18px; margin: 15px 0px 5px;}
@@ -65,7 +65,7 @@
</ol>
</body>
</html>"}*/
</html>"}
/obj/item/weapon/book/manual/engineering_hacking
@@ -75,7 +75,7 @@
title = "Hacking"
//big pile of shit below.
/*dat = {"
dat = {"
<html><head>
</head>
@@ -86,7 +86,7 @@
</html>
"}*/
"}
/obj/item/weapon/book/manual/engineering_singularity_safety
name = "Singularity Safety in Special Circumstances"
@@ -95,7 +95,7 @@
title = "Singularity Safety in Special Circumstances"
//big pile of shit below.
/*dat = {"<html>
dat = {"<html>
<head>
<style>
h1 {font-size: 18px; margin: 15px 0px 5px;}
@@ -134,7 +134,7 @@
Step one: <b>GET THE FUCK OUT OF THERE!!! FORGET THE WOMEN AND CHILDREN, SAVE YOURSELF!!!</b><br>
</body>
</html>
"}*/
"}
/obj/item/weapon/book/manual/hydroponics_pod_people
name = "The Human Harvest - From seed to market"
@@ -178,7 +178,7 @@
title = "Cloning techniques of the 26th century"
//big pile of shit below.
/*dat = {"<html>
dat = {"<html>
<head>
<style>
h1 {font-size: 18px; margin: 15px 0px 5px;}
@@ -246,7 +246,7 @@
</body>
</html>
"}*/
"}
/obj/item/weapon/book/manual/ripley_build_and_repair
@@ -330,8 +330,7 @@
icon_state = "rdbook"
author = "Dr. L. Ight"
title = "Research and Development 101"
/*dat = {"
<html>
dat = {"<html>
<head>
<style>
h1 {font-size: 18px; margin: 15px 0px 5px;}
@@ -373,7 +372,7 @@
Many machines produces from circuit boards and inserted into a machine frame require a variety of parts to construct. These are parts like capacitors, batteries, matter bins, and so forth. As your knowledge of science improves, more advanced versions are unlocked. If you use these parts when constructing something, its attributes may be improved. For example, if you use an advanced matter bin when constructing an autolathe (rather then a regular one), it'll hold more materials. Experiment around with stock parts of various qualities to see how they affect the end results! Be warned, however: Tier 3 and higher stock parts don't have 100% reliability and their low reliability may affect the reliability of the end machine.
</body>
</html>
"}*/
"}
/obj/item/weapon/book/manual/robotics_cyborgs
@@ -381,12 +380,12 @@
icon_state = "borgbook"
author = "XISC"
title = "Cyborgs for Dummies"
/*dat = {"<html>
dat = {"<html>
<head>
<style>
h1 {font-size: 21px; margin: 15px 0px 5px;}
h2 {font-size: 18px; margin: 15px 0px 5px;}
h3 {font-size: 15px; margin: 15px 0px 5px;}
h3 {font-size: 15px; margin: 15px 0px 5px;}
li {margin: 2px 0px 2px 15px;}
ul {list-style: none; margin: 5px; padding: 0px;}
ol {margin: 5px; padding: 0px 15px;}
@@ -576,7 +575,7 @@
</body>
</html>
"}*/
"}
/obj/item/weapon/book/manual/security_space_law
name = "Space Law"
@@ -620,7 +619,7 @@
icon_state = "cooked_book"
author = "Lord Frenrir Cageth"
title = "Chef Recipes"
/*dat = {"<html>
dat = {"<html>
<head>
<style>
h1 {font-size: 18px; margin: 15px 0px 5px;}
@@ -636,13 +635,13 @@
Here is a guide on basic food recipes and also how to not poison your customers accidentally.
<h2>Burger:<h2>
Put 1 meat and 1 flour into the microwave and turn it on. Then wait.
Put 1 meat and 5 flour into the microwave and turn it on. Then wait.
<h2>Bread:<h2>
Put 3 flour into the microwave and then wait.
Put 15 flour into the microwave and then wait.
<h2>Waffles:<h2>
Add 2 flour and 2 egg to the microwave and then wait.
Add 10 flour and 2 egg to the microwave and then wait.
<h2>Popcorn:<h2>
Add 1 corn to the microwave and wait.
@@ -651,13 +650,13 @@
Put 1 meat, 1 unit of salt and 1 unit of pepper into the microwave and wait.
<h2>Meat Pie:<h2>
Put 1 meat and 2 flour into the microwave and wait.
Put 1 meat and 10 flour into the microwave and wait.
<h2>Boiled Spagetti:<h2>
Put 1 spagetti and 5 units of water into the microwave and wait.
<h2>Donuts:<h2>
Add 1 egg and 1 flour to the microwave and wait.
Add 1 egg and 5 flour to the microwave and wait.
<h2>Fries:<h2>
Add one potato to the processor and wait.
@@ -665,7 +664,7 @@
</body>
</html>
"}*/
"}
/obj/item/weapon/book/manual/barman_recipes
name = "Barman Recipes"

View File

@@ -192,15 +192,16 @@ var/list/mechtoys = list(
moving = 0
//Do I really need to explain this loop?
for(var/atom/A in the_shuttles_way)
if(istype(A,/mob/living))
var/mob/living/unlucky_person = A
unlucky_person.gib()
// Weird things happen when this shit gets in the way.
if(istype(A,/obj/structure/lattice) \
|| istype(A, /obj/structure/window) \
|| istype(A, /obj/structure/grille))
del(A)
if(at_station)
for(var/atom/A in the_shuttles_way)
if(istype(A,/mob/living))
var/mob/living/unlucky_person = A
unlucky_person.gib()
// Weird things happen when this shit gets in the way.
if(istype(A,/obj/structure/lattice) \
|| istype(A, /obj/structure/window) \
|| istype(A, /obj/structure/grille))
del(A)
from.move_contents_to(dest)
@@ -268,6 +269,7 @@ var/list/mechtoys = list(
// Delete it. (Fixes github #473)
qdel(A)
//world << "deleting [MA]/[MA.type] it was [!MA.anchored ? "not ": ""] anchored"
qdel(MA)
if(plasma_count)

View File

@@ -85,6 +85,8 @@
<li class="rscadd">Added RSF to the bar.</li>
<li class="rscadd">Added three new vending machines. Hatlord, Suitlord, and Shoelord.</li>
<li class="rscadd">Re-did the area below tool storage.</li>
<li class="rscadd">Added new DNA injectors.</li>
<li class="rscadd">Fixed a couple manuals..</li>
</ul>
<h3 class="author">N3X15 updated:</h3>
<ul class="changes bgimages16">