Conflicts:
	code/game/objects/items/weapons/surgery_tools.dm

Did not do a pull in ages, all constants I sued in surgery code got renamed.
This commit is contained in:
comma
2012-08-08 13:21:47 +04:00
237 changed files with 17508 additions and 15761 deletions
+4 -1
View File
@@ -55,7 +55,10 @@
for(var/obj/item/I in src.loc)
if(!I.anchored)
I.loc = src
if(src.contents.len < src.quantity_max)
I.loc = src
else
break
for(var/obj/mecha/working/ripley/deathripley/I in src.loc)
I.loc = src
+3 -1
View File
@@ -16,7 +16,7 @@
new /obj/item/device/pda/captain(src)
new /obj/item/weapon/storage/id_kit(src)
new /obj/item/clothing/suit/armor/captain(src)
new /obj/item/clothing/head/helmet/cap(src)
new /obj/item/clothing/head/caphat(src)
new /obj/item/clothing/glasses/sunglasses(src)
new /obj/item/clothing/suit/armor/vest(src)
new /obj/item/weapon/cartridge/captain(src)
@@ -52,6 +52,8 @@
new /obj/item/weapon/storage/id_kit(src)
new /obj/item/weapon/gun/energy/gun(src)
new /obj/item/device/flash(src)
new /obj/item/clothing/suit/armor/vest(src)
new /obj/item/clothing/head/helmet(src)
new /obj/item/clothing/glasses/sunglasses(src)
return
+6 -5
View File
@@ -46,10 +46,9 @@ obj/structure/closet/wardrobe/hos/New()
obj/structure/closet/wardrobe/hop/New()
new /obj/item/clothing/under/rank/head_of_personnel(src)
new /obj/item/clothing/suit/armor/vest(src)
new /obj/item/weapon/clipboard(src)
new /obj/item/clothing/shoes/brown(src)
new /obj/item/clothing/gloves/blue(src)
new /obj/item/clothing/head/helmet(src)
/obj/structure/closet/wardrobe/pink/New()
new /obj/item/clothing/under/color/pink(src)
@@ -116,6 +115,8 @@ obj/structure/closet/wardrobe/hop/New()
new /obj/item/clothing/shoes/black(src)
new /obj/item/clothing/shoes/black(src)
new /obj/item/clothing/shoes/black(src)
new /obj/item/clothing/shoes/magboots(src) //[Redacted] ZAS! >:C
new /obj/item/clothing/head/helmet/hardhat/red(src)
/obj/structure/closet/wardrobe/engineering_yellow/New()
new /obj/item/clothing/under/rank/engineer(src)
@@ -356,6 +357,6 @@ obj/structure/closet/wardrobe/hop/New()
new /obj/item/clothing/under/rank/cargo(src)
new /obj/item/clothing/under/rank/cargo(src)
new /obj/item/clothing/under/rank/cargo(src)
new /obj/item/clothing/shoes/black(src)
new /obj/item/clothing/shoes/black(src)
new /obj/item/clothing/shoes/black(src)
new /obj/item/clothing/shoes/brown(src)
new /obj/item/clothing/shoes/brown(src)
new /obj/item/clothing/shoes/brown(src)
+31 -9
View File
@@ -1,7 +1,7 @@
//########################## CONTRABAND ;3333333333333333333 -Agouri ###################################################
#define NUM_OF_POSTER_DESIGNS 22
#define NUM_OF_POSTER_DESIGNS 27
#define BS12_POSTERS_START 18
/obj/item/weapon/contraband
@@ -13,7 +13,7 @@
/obj/item/weapon/contraband/poster
name = "rolled-up poster"
desc = "The poster comes with its own automatic adhesive mechanism, for easy pinning to any vertical surface. Its vulgar themes have marked it as Contraband aboard Nanotrasen© Space Facilities."
desc = "The poster comes with its own automatic adhesive mechanism, for easy pinning to any vertical surface. Its vulgar themes have marked it as Contraband aboard NanoTrasen© Space Facilities."
icon_state = "rolled_poster"
var/serial_number = 0
var/obj/effect/decal/poster/resulting_poster = null //The poster that will be created is initialised and stored through contraband/poster's constructor
@@ -83,6 +83,7 @@ obj/effect/decal/poster/New(var/serial)
src.serial_number = serial
restart_proc:
if(serial_number==src.loc)
//add an increased chance for BS12 specific posters to spawn
if(prob(10))
@@ -117,22 +118,22 @@ obj/effect/decal/poster/New(var/serial)
desc += " This particular one is of a couple of ragged gunmen, one male and one female, on top of a mound of rubble. The number \"13\" is visible on their blue jumpsuits."
if(8)
name += " - Pinup Girl Cindy"
desc += " This particular one is of Nanotrasen's PR girl, Cindy, in a particularly feminine pose."
desc += " This particular one is of NanoTrasen's PR girl, Cindy, in a particularly feminine pose."
if(9)
name += " - Pinup Girl Amy"
desc += " This particular one is of Amy, the nymphomaniac Urban Legend of Nanotrasen Space Stations. How this photograph came to be is not known."
desc += " This particular one is of Amy, the nymphomaniac Urban Legend of NanoTrasen Space Stations. How this photograph came to be is not known."
if(10)
name += " - Don't Panic"
desc += " This particular one depicts some sort of star in a grimace. The \"Don't Panic\" is written in big, friendly letters."
if(11)
name += " - Underwater Laboratory"
desc += " This particular one is of the fabled last crew of Nanotrasen's previous project before going big on Asteroid mining, Sealab."
desc += " This particular one is of the fabled last crew of NanoTrasen's previous project before going big on Asteroid mining, Sealab."
if(12)
name += " - Missing Gloves"
desc += " This particular one is about the uproar that followed Nanotrasen's financial cuts towards insulated-glove purchases."
desc += " This particular one is about the uproar that followed NanoTrasen's financial cuts towards insulated-glove purchases."
if(13)
name += " - Rogue AI"
desc += " This particular one depicts the shell of the infamous AI that catastropically comandeered one of Nanotrasen's earliest space stations. Back then, the corporation was just known as TriOptimum."
desc += " This particular one depicts the shell of the infamous AI that catastropically comandeered one of NanoTrasen's earliest space stations. Back then, the corporation was just known as TriOptimum."
if(14)
name += " - User of the Arcane Arts"
desc += " This particular one depicts a wizard, casting a spell. You can't really make out if it's an actial photograph or a computer-generated image."
@@ -145,6 +146,8 @@ obj/effect/decal/poster/New(var/serial)
if(17)
name += " - Dangerous Static"
desc += " This particular one depicts nothing remarkable other than a rather mesmerising pattern of monitor static. There's a tag on the sides of the poster, urging you to \"tear this poster in half to receive your free sample\"."
//bs12 specific posters
if(18)
name += " - Pinup Girl Val" //art thou incensed, brethren?
desc += " Luscious Val McNeil, the vertically challenged Legal Extraordinaire, winner of Miss Space two years running and favoured pinup girl of Lawyers Weekly."
@@ -160,12 +163,28 @@ obj/effect/decal/poster/New(var/serial)
if(22)
name += " - Skrell Twilight"
desc += " This poster depicts a mysteriously inscrutable, alien scene. Numerous Skrell can be seen conversing amidst great, crystalline towers rising above crashing waves"
if(23)
name += " - Join the Fuzz!"
desc += " It's a nice recruitment poster of a white haired Chinese woman that says; \"Big Guns, Hot Women, Good Times. Security. We get it done.\""
if(24)
name += " - Looking for a career with excitement?"
desc += " A recruitment poster starring a dark haired woman with glasses and a purple shirt that has \"Got Brains? Got Talent? Not afraid of electric flying monsters that want to suck the soul out of you? Then Xenobiology could use someone like you!\" written on the bottom."
if(25)
name += " - Safety first: because electricity doesn't wait!"
desc += " A safety poster starring a clueless looking redhead with frazzled hair. \"Every year, hundreds of NT employees expose themselves to electric shock. Play it safe. Avoid suspicious doors after electrical storms, and always wear protection when doing electric maintenance.\""
if(26)
name += " - Responsible medbay habits, No #259"
desc += " A poster with a nervous looking geneticist on it states; \"Friends Don't Tell Friends They're Clones. It can cause severe and irreparable emotional trauma. Always do the right thing and never tell them that they were dead.\""
if(27)
name += " - Irresponsible medbay habits, No #2"
desc += " This is a safety poster starring a perverted looking naked doctor. \"Sexual harassment is never okay. REPORT any acts of sexual deviance or harassment that disrupt a healthy working environment.\""
/*if(20)
name += " - the Disabled Triptarch: Ironfoot, Seber and Ore"
desc += " This poster depicts a genetics researcher, a chemist and a medical doctor in various states of miscommunication."*/
else
name = "This shit just bugged. Report it to Agouri - polyxenitopalidou@gmail.com"
desc = "Why are you still here?"
//properly handle unhinged logic states
src.serial_number = src.loc
goto restart_proc
..()
obj/effect/decal/poster/attackby(obj/item/weapon/W as obj, mob/user as mob)
@@ -223,6 +242,9 @@ obj/effect/decal/poster/attackby(obj/item/weapon/W as obj, mob/user as mob)
user << "<span class='notice'>You start placing the poster on the wall...</span>" //Looks like it's uncluttered enough. Place the poster.
//declaring D because otherwise if P gets 'deconstructed' we lose our reference to P.resulting_poster
if(P.resulting_poster.serial_number != P.serial_number)
del P.resulting_poster
P.resulting_poster = new /obj/effect/decal/poster(P, P.serial_number)
var/obj/effect/decal/poster/D = P.resulting_poster
var/temp_loc = user.loc
+2 -2
View File
@@ -243,7 +243,7 @@
dat += "<li><a href='byond://?src=\ref[src];choice=1'><img src=pda_notes.png> Notekeeper</a></li>"
dat += "<li><a href='byond://?src=\ref[src];choice=2'><img src=pda_mail.png> Messenger</a></li>"
dat += "<li><a href='byond://?src=\ref[src];choice=41'><img src=pda_notes.png> View Crew Manifest</a></li>"
//dat += "<li><a href='byond://?src=\red[src];choice=chatroom'><img src=pda_chatroom.png> Nanotrasen Relay Chat</a></li>"
//dat += "<li><a href='byond://?src=\red[src];choice=chatroom'><img src=pda_chatroom.png> NanoTrasen Relay Chat</a></li>"
if (cartridge)
if (cartridge.access_clown)
@@ -385,7 +385,7 @@
dat += "<br>"
if (5)
dat += "<h4><img src=pda_chatroom.png> Nanotrasen Relay Chat</h4>"
dat += "<h4><img src=pda_chatroom.png> NanoTrasen Relay Chat</h4>"
dat += "<h4><img src=pda_menu.png> Detected Channels</h4>: <li>"
for(var/datum/chatroom/C in chatrooms)
+2 -2
View File
@@ -183,8 +183,8 @@
/obj/item/clothing/head/helmet/space/rig/dropped(mob/user)
if(on)
user.ul_SetLuminosity(user.LuminosityRed + brightness_on, user.LuminosityGreen + (brightness_on - 1), user.LuminosityBlue)
ul_SetLuminosity(brightness_on, brightness_on-1, 0)
user.ul_SetLuminosity(user.LuminosityRed - brightness_on, user.LuminosityGreen - (brightness_on - 1), user.LuminosityBlue)
ul_SetLuminosity(brightness_on, brightness_on - 1, 0)
// the desk lamps are a bit special
/obj/item/device/flashlight/lamp
+3 -3
View File
@@ -120,12 +120,12 @@ MASS SPECTROMETER
for(var/name in H.organs)
var/datum/organ/external/e = H.organs[name]
var/limb = e.getDisplayName()
if(e.status & BROKEN)
if(((e.name == "l_arm") || (e.name == "r_arm") || (e.name == "l_leg") || (e.name == "r_leg")) && (!(e.status & SPLINTED)))
if(e.status & ORGAN_BROKEN)
if(((e.name == "l_arm") || (e.name == "r_arm") || (e.name == "l_leg") || (e.name == "r_leg")) && (!(e.status & ORGAN_SPLINTED)))
user << "\red Unsecured fracture in subject [limb]. Splinting recommended for transport."
for(var/name in H.organs)
var/datum/organ/external/e = H.organs[name]
if(e.status & BROKEN)
if(e.status & ORGAN_BROKEN)
user.show_message(text("\red Bone fractures detected. Advanced scanner required for location."), 1)
break
if(ishuman(M))
+7 -7
View File
@@ -124,7 +124,7 @@ steam.start() -- spawns the effect
var/i = 0
for(i=0, i<src.number, i++)
spawn(0)
if(holder)
if(holder && !istype(holder,/datum))
src.location = get_turf(holder)
var/obj/effect/effect/steam/steam = new /obj/effect/effect/steam(src.location)
var/direction
@@ -195,7 +195,7 @@ steam.start() -- spawns the effect
if(src.total_sparks > 20)
return
spawn(0)
if(holder)
if(holder && !istype(holder,/datum))
src.location = get_turf(holder)
var/obj/effect/effect/sparks/sparks = new /obj/effect/effect/sparks(src.location)
src.total_sparks++
@@ -265,7 +265,7 @@ steam.start() -- spawns the effect
if(src.total_smoke > 20)
return
spawn(0)
if(holder)
if(holder && !istype(holder,/datum))
src.location = get_turf(holder)
var/obj/effect/effect/harmless_smoke/smoke = new /obj/effect/effect/harmless_smoke(src.location)
src.total_smoke++
@@ -365,7 +365,7 @@ steam.start() -- spawns the effect
if(src.total_smoke > 20)
return
spawn(0)
if(holder)
if(holder && !istype(holder,/datum))
src.location = get_turf(holder)
var/obj/effect/effect/bad_smoke/smoke = new /obj/effect/effect/bad_smoke(src.location)
src.total_smoke++
@@ -494,7 +494,7 @@ steam.start() -- spawns the effect
if(src.total_smoke > 20)
return
spawn(0)
if(holder)
if(holder && !istype(holder,/datum))
src.location = get_turf(holder)
var/iterator = pick(0,1,1,1,2,2,2,3)
var/obj/effect/effect/chem_smoke/smoke = new /obj/effect/effect/chem_smoke(src.location)
@@ -602,7 +602,7 @@ steam.start() -- spawns the effect
if(src.total_smoke > 20)
return
spawn(0)
if(holder)
if(holder && !istype(holder,/datum))
src.location = get_turf(holder)
var/obj/effect/effect/sleep_smoke/smoke = new /obj/effect/effect/sleep_smoke(src.location)
src.total_smoke++
@@ -688,7 +688,7 @@ steam.start() -- spawns the effect
if(src.total_smoke > 20)
return
spawn(0)
if(holder)
if(holder && !istype(holder,/datum))
src.location = get_turf(holder)
var/obj/effect/effect/mustard_gas/smoke = new /obj/effect/effect/mustard_gas(src.location)
src.total_smoke++
+1 -1
View File
@@ -404,7 +404,7 @@
return
var/datum/organ/external/head = H.organs["head"]
if(head.status & DESTROYED)
if(head.status & ORGAN_DESTROYED)
user << "\blue Put it where? There's no head."
//since these people will be dead M != usr
+1 -1
View File
@@ -63,7 +63,7 @@
var/area/A = get_area()
var/text = {"<HTML><head><title>[src]</title></head><BODY>
<h2>[station_name()] blueprints</h2>
<small>Property of Nanotrasen. For heads of staff only. Store in high-secure storage.</small><hr>
<small>Property of NanoTrasen. For heads of staff only. Store in high-secure storage.</small><hr>
"}
switch (get_area_type())
if (AREA_SPACE)
+6 -6
View File
@@ -97,13 +97,13 @@
if (user.hand)
if(ishuman(user))
var/datum/organ/external/temp = user:organs["l_hand"]
if(temp.status & DESTROYED)
if(temp.status & ORGAN_DESTROYED)
user << "\blue Yo- wait a minute."
return
else
if(ishuman(user))
var/datum/organ/external/temp = user:organs["r_hand"]
if(temp.status & DESTROYED)
if(temp.status & ORGAN_DESTROYED)
user << "\blue Yo- wait a minute."
if (istype(src.loc, /obj/item/weapon/storage))
@@ -136,7 +136,7 @@
if (user.hand)
if(ishuman(user))
var/datum/organ/external/temp = user:organs["l_hand"]
if(!(temp.status & DESTROYED))
if(!(temp.status & ORGAN_DESTROYED))
user.l_hand = src
else
user << "\blue You pick \the [src] up with your ha- wait a minute."
@@ -148,7 +148,7 @@
else
if(ishuman(user))
var/datum/organ/external/temp = user:organs["r_hand"]
if(!(temp.status & DESTROYED))
if(!(temp.status & ORGAN_DESTROYED))
user.r_hand = src
else
user << "\blue You pick \the [src] up with your ha- wait a minute."
@@ -176,13 +176,13 @@
if (user.hand)
if(ismonkey(user))
var/datum/organ/external/temp = user:organs["l_hand"]
if(temp.status & DESTROYED)
if(temp.status & ORGAN_DESTROYED)
user << "\blue Yo- wait a minute."
return
else
if(ismonkey(user))
var/datum/organ/external/temp = user:organs["r_hand"]
if(temp.status & DESTROYED)
if(temp.status & ORGAN_DESTROYED)
user << "\blue Yo- wait a minute."
if (istype(src.loc, /obj/item/weapon/storage))
+2 -2
View File
@@ -72,7 +72,7 @@ RCD
afterattack(atom/A, mob/user as mob)
if(istype(A,/area/shuttle)||istype(A,/turf/space/transit))//Nanotrasen Matter Jammer TM -Sieve
if(istype(A,/area/shuttle)||istype(A,/turf/space/transit))//NanoTrasen Matter Jammer TM -Sieve
disabled = 1
else
disabled = 0
@@ -168,7 +168,7 @@ RCD
/obj/item/weapon/rcd/industrial
name = "industrial rapid construction device"
max_matter = 60
New()
matter = max_matter
return ..()
+4 -4
View File
@@ -510,15 +510,15 @@ CRITTER GRENADE
deliveryamt = 5
origin_tech = "materials=3;magnets=4;syndicate=4"
/obj/item/weapon/spawnergrenade/spesscarp
/obj/item/weapon/spawnergrenade/carp
name = "carp delivery grenade"
spawner_type = /obj/effect/critter/spesscarp
spawner_type = /mob/living/simple_animal/carp
deliveryamt = 5
origin_tech = "materials=3;magnets=4;syndicate=4"
/obj/item/weapon/spawnergrenade/elitespesscarp
/obj/item/weapon/spawnergrenade/elitecarp
name = "elite carp delivery grenade"
spawner_type = /obj/effect/critter/spesscarp/elite
spawner_type = /mob/living/simple_animal/carp/elite
deliveryamt = 2
origin_tech = "materials=3;magnets=4;syndicate=4"
@@ -341,15 +341,20 @@ the implant may become unstable and either pre-maturely inject the subject or si
process()
var/mob/M = imp_in
var/area/t = get_area(M)
if(isnull(M)) // If the mob got gibbed
var/obj/item/device/radio/headset/a = new /obj/item/device/radio/headset(null)
a.autosay("states, \"[mobname] has died-zzzzt in-in-in...\"", "[mobname]'s Death Alarm")
del(a)
processing_objects.Remove(src)
else if(M.stat == 2)
var/area/t = get_area(M)
var/obj/item/device/radio/headset/a = new /obj/item/device/radio/headset(null)
a.autosay("states, \"[mobname] has died in [t.name]!\"", "[mobname]'s Death Alarm")
if(istype(t, /area/syndicate_station) || istype(t, /area/syndicate_mothership) || istype(t, /area/shuttle/syndicate_elite) )
//give the syndies a bit of stealth
a.autosay("states, \"[mobname] has died in Space!\"", "[mobname]'s Death Alarm")
else
a.autosay("states, \"[mobname] has died in [t.name]!\"", "[mobname]'s Death Alarm")
del(a)
processing_objects.Remove(src)
@@ -31,7 +31,7 @@
return
if(hasorgans(M))
var/datum/organ/external/target = M:get_organ(check_zone(user.zone_sel.selecting))
if(target.status & DESTROYED)
if(target.status & ORGAN_DESTROYED)
user << "What [target.display_name]?"
return
if(!target.implant)
@@ -114,8 +114,7 @@
..()
/obj/item/weapon/implanter/compressed/afterattack(atom/A, mob/user as mob)
if(istype(A,/obj/item))
var/obj/item/weapon/implant/compressed/c = imp
c.scanned = A
if(istype(A,/obj/item) && imp)
imp:scanned = A
A.loc.contents.Remove(A)
update()
+1 -1
View File
@@ -313,7 +313,7 @@ It is caused by the unexpected circumstances after awakening in cryo (if cloned
<li>Internal armor is plasteel for additional strength.</li>
<li>External armor must be installed in 2 parts, totaling 10 sheets.</li>
<li>Completed mech is more resiliant against fire, and is a bit more durable overall</li>
<li>Nanotrasen is determined to the safety of its <s>investments</s> employees.</li>
<li>NanoTrasen is determined to the safety of its <s>investments</s> employees.</li>
</ol>
</body>
</html>
+6 -6
View File
@@ -44,7 +44,7 @@ MEDICAL
if(!istype(affecting, /datum/organ/external))
affecting = H.get_organ("head")
if(affecting.status & ROBOT)
if(affecting.status & ORGAN_ROBOT)
user << "Medical equipment for a robot arm? Better get a welder..."
return
@@ -53,10 +53,10 @@ MEDICAL
if(!((affecting.name == "l_arm") || (affecting.name == "r_arm") || (affecting.name == "l_leg") || (affecting.name == "r_leg")))
user << "\red You can't apply a splint there!"
return
if(!(affecting.status & BROKEN))
if(!(affecting.status & ORGAN_BROKEN))
user << "\red [M]'s [limb] isn't broken!"
return
if(affecting.status & SPLINTED)
if(affecting.status & ORGAN_SPLINTED)
user << "\red [M]'s [limb] is already splinted!"
return
if (M != user)
@@ -75,7 +75,7 @@ MEDICAL
else
user.visible_message("\red [user] fumbles \the [src].", "\red You fumble \the [src].", "\red You hear something being wrapped.")
return
affecting.status |= SPLINTED
affecting.status |= ORGAN_SPLINTED
use(1)
M.update_clothing()
return
@@ -115,8 +115,8 @@ MEDICAL
"You hear gauze being ripped.")
use(1)
if (!ointment && (affecting.status & BLEEDING))
affecting.status &= ~BLEEDING
if (!ointment && (affecting.status & ORGAN_BLEEDING))
affecting.status &= ~ORGAN_BLEEDING
if (affecting.heal_damage(src.heal_brute, src.heal_burn))
H.UpdateDamageIcon()
@@ -24,8 +24,8 @@
var/mob/living/carbon/human/H = M
var/datum/organ/external/S = H.organs[user.zone_sel.selecting]
if(S.status & DESTROYED)
if(!(S.status & ATTACHABLE))
if(S.status & ORGAN_DESTROYED)
if(!(S.status & ORGAN_ATTACHABLE))
user << "\red The wound is not ready for a replacement!"
return 0
if(M != user)
@@ -51,17 +51,17 @@
user << "\red You mess up!"
S.take_damage(15)
S.status &= ~BROKEN
S.status &= ~SPLINTED
S.status &= ~ATTACHABLE
S.status &= ~DESTROYED
S.status |= ROBOT
S.status &= ~ORGAN_BROKEN
S.status &= ~ORGAN_SPLINTED
S.status &= ~ORGAN_ATTACHABLE
S.status &= ~ORGAN_DESTROYED
S.status |= ORGAN_ROBOT
var/datum/organ/external/T = H.organs["[limbloc]"]
T.status &= ~BROKEN
T.status &= ~SPLINTED
T.status &= ~ATTACHABLE
T.status &= ~DESTROYED
T.status |= ROBOT
T.status &= ~ORGAN_BROKEN
T.status &= ~ORGAN_SPLINTED
T.status &= ~ORGAN_ATTACHABLE
T.status &= ~ORGAN_DESTROYED
T.status |= ORGAN_ROBOT
M.update_body()
M.updatehealth()
M.UpdateDamageIcon()
@@ -108,11 +108,11 @@ Called when surgeon interupted operation, or was interrupted (was not there with
var/datum/organ/external/S = M.organs[user.zone_sel.selecting]
if (!S)
return 0
if(S.status & DESTROYED)
if(S.status & BLEEDING)
if(S.status & ORGAN_DESTROYED)
if(S.status & ORGAN_BLEEDING)
user << "\red There's too much blood here!"
return 0
if(!(S.status & CUT_AWAY))
if(!(S.status & ORGAN_CUT_AWAY))
user << "\red The flesh hasn't been cleanly cut!"
return 0
M.visible_message( \
@@ -234,10 +234,10 @@ Called when surgeon interupted operation, or was interrupted (was not there with
if(!S || !istype(S))
return 0
if(S.status & DESTROYED)
if(S.status & ORGAN_DESTROYED)
return 0
if(S.status & ROBOT)
if(S.status & ORGAN_ROBOT)
user << "Medical equipment for a robot arm? How would that do any good..."
return 0
@@ -245,7 +245,7 @@ Called when surgeon interupted operation, or was interrupted (was not there with
user << "\red There is skin in the way!"
return 0
if(S.status & BLEEDING)
if(S.status & ORGAN_BLEEDING)
user << "\red [H] is profusely bleeding in \his [S.display_name]!"
return 0
@@ -332,11 +332,11 @@ Called when surgeon interupted operation, or was interrupted (was not there with
var/datum/organ/external/S = H.organs[user.zone_sel.selecting]
if (!S)
return 0
if(S.status & DESTROYED)
if(!(S.status & BLEEDING))
if(S.status & ORGAN_DESTROYED)
if(!(S.status & ORGAN_BLEEDING))
user << "\red There is nothing bleeding here!"
return 0
if(!(S.status & CUT_AWAY))
if(!(S.status & ORGAN_CUT_AWAY))
user << "\red The flesh hasn't been cleanly cut!"
return 0
H.visible_message( \
@@ -346,7 +346,7 @@ Called when surgeon interupted operation, or was interrupted (was not there with
H.visible_message( \
"\red [user] finishes clamping bleeders in the stump where [H]'s [S.display_name] used to be with [src]!", \
"\red [user] finishes clamping bleeders in the stump where your [S.display_name] used to be with [src]!")
S.status &= ~BLEEDING
S.status &= ~ORGAN_BLEEDING
H.updatehealth()
H.UpdateDamageIcon()
return 1
@@ -426,7 +426,7 @@ Called when surgeon interupted operation, or was interrupted (was not there with
M.face_op_stage = 2.0
var/datum/organ/external/S = M.organs["head"]
S.status &= ~BLEEDING
S.status &= ~ORGAN_BLEEDING
M.updatehealth()
M.UpdateDamageIcon()
return 1
@@ -509,10 +509,10 @@ Called when surgeon interupted operation, or was interrupted (was not there with
if(!S || !istype(S))
return 0
if(S.status & DESTROYED)
if(S.status & ORGAN_DESTROYED)
return 0
if(S.status & ROBOT)
if(S.status & ORGAN_ROBOT)
user << "Medical equipment for a robot arm? How would that do any good?"
return 0
@@ -520,7 +520,7 @@ Called when surgeon interupted operation, or was interrupted (was not there with
user << "\red There is skin in the way!"
return 0
if(!(S.status & BLEEDING))
if(!(S.status & ORGAN_BLEEDING))
if(S.implant)
implant_surgery(H,user)
return 1
@@ -540,7 +540,7 @@ Called when surgeon interupted operation, or was interrupted (was not there with
if(user.zone_sel.selecting == "head" && H:brain_op_stage == 1)
H:brain_op_stage = 0
S.status &= ~BLEEDING
S.status &= ~ORGAN_BLEEDING
H.updatehealth()
H.UpdateDamageIcon()
else
@@ -721,7 +721,7 @@ Called when surgeon interupted operation, or was interrupted (was not there with
if(!S.open)
usr << "<b>You have to cut the limb open first!</b>"
return
if(S.status & ROBOT)
if(S.status & ORGAN_ROBOT)
user << "Medical equipment for a robot arm? How would that do any good?"
return
for(var/mob/O in viewers(M))
@@ -769,11 +769,11 @@ Called when surgeon interupted operation, or was interrupted (was not there with
var/datum/organ/external/S = H.organs[user.zone_sel.selecting]
if (!S)
return 0
if(S.status & DESTROYED)
if(S.status & BLEEDING)
if(S.status & ORGAN_DESTROYED)
if(S.status & ORGAN_BLEEDING)
user << "\red There's too much blood here!"
return 0
if(!(S.status & CUT_AWAY))
if(!(S.status & ORGAN_CUT_AWAY))
user << "\red The flesh hasn't been cleanly cut!"
return 0
if(S.open != 3)
@@ -788,7 +788,7 @@ Called when surgeon interupted operation, or was interrupted (was not there with
"\red [user] finishes adjusting the area around your [S.display_name]!")
S.open = 0
S.stage = 0
S.status |= ATTACHABLE
S.status |= ORGAN_ATTACHABLE
S.amputated = 1 // this should prevent the wound from hurting etc.
H.updatehealth()
H.UpdateDamageIcon()
@@ -850,10 +850,10 @@ Called when surgeon interupted operation, or was interrupted (was not there with
if(!S || !istype(S))
return 0
if(S.status & DESTROYED)
if(S.status & ORGAN_DESTROYED)
user << "What [S.display_name]?"
if(S.status & ROBOT)
if(S.status & ORGAN_ROBOT)
user << "Medical equipment for a robot arm? How would that do any good..."
return
if(!S.open)
@@ -935,7 +935,7 @@ Called when surgeon interupted operation, or was interrupted (was not there with
return
if(istype(H) && H.organs["head"])
var/datum/organ/external/affecting = H.organs["head"]
if(affecting.status & DESTROYED)
if(affecting.status & ORGAN_DESTROYED)
return ..()
if(brain_surgery(M,user))
return
@@ -1047,7 +1047,7 @@ Called when surgeon interupted operation, or was interrupted (was not there with
var/datum/organ/external/S = M.organs[user.zone_sel.selecting]
if (!S)
return
if(S.status & DESTROYED)
if(S.status & ORGAN_DESTROYED)
M.visible_message( \
"\red [user] is beginning to cut away at the flesh where [M]'s [S.display_name] used to be with [src].", \
"\red [user] begins to cut away at the flesh where [S.display_name] used to be with [src]!")
@@ -1055,7 +1055,7 @@ Called when surgeon interupted operation, or was interrupted (was not there with
M.visible_message( \
"\red [user] finishes cutting where [M]'s [S.display_name] used to be with [src]!", \
"\red [user] finishes cutting where your [S.display_name] used to be with [src]!")
S.status |= BLEEDING|CUT_AWAY
S.status |= ORGAN_BLEEDING|ORGAN_CUT_AWAY
M.updatehealth()
M.UpdateDamageIcon()
return 1
@@ -1115,10 +1115,10 @@ Called when surgeon interupted operation, or was interrupted (was not there with
if(!S || !istype(S))
return 0
if(S.status & DESTROYED)
if(S.status & ORGAN_DESTROYED)
return 0
if(S.status & ROBOT)
if(S.status & ORGAN_ROBOT)
user << "Medical equipment for a robot arm? How would that do any good..."
return 0
@@ -1134,7 +1134,7 @@ Called when surgeon interupted operation, or was interrupted (was not there with
"\red [user] cuts open the wound in [H]'s [S.display_name] with [src]!", \
"\red [user] cuts open the wound in your [S.display_name] with [src]!")
S.status |= BLEEDING
S.status |= ORGAN_BLEEDING
S.open = 1
if(S.display_name == "head")
H:brain_op_stage = 1.0
@@ -1210,10 +1210,10 @@ Called when surgeon interupted operation, or was interrupted (was not there with
var/datum/organ/external/S = H:organs[user.zone_sel.selecting]
if (!S)
return
if(S.status & DESTROYED)
if(S.status & ORGAN_DESTROYED)
return
if(S.status & ROBOT)
if(S.status & ORGAN_ROBOT)
var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread()
spark_system.set_up(5, 0, H)
spark_system.attach(H)
@@ -1348,33 +1348,33 @@ Called when surgeon interupted operation, or was interrupted (was not there with
var/datum/organ/external/temp = M.organs[zone]
var/msg
if(temp.status & DESTROYED)
if(temp.status & ORGAN_DESTROYED)
return ..()
// quickly convert embryo removal to bone surgery
if(zone == "chest" && M.embryo_op_stage == 3)
M.embryo_op_stage = 0
temp.open = 2
temp.status &= ~BLEEDING
temp.status &= ~ORGAN_BLEEDING
// quickly convert appendectomy to bone surgery
if(zone == "groin" && M.appendix_op_stage == 3)
M.appendix_op_stage = 0
temp.open = 2
temp.status &= ~BLEEDING
temp.status &= ~ORGAN_BLEEDING
msg = get_message(1,M,user,temp)
for(var/mob/O in viewers(M,null))
O.show_message("\red [msg]",1)
if(do_mob(user,M,time))
if(temp.open == 2 && !(temp.status & BLEEDING))
if(temp.open == 2 && !(temp.status & ORGAN_BLEEDING))
if(temp.broken_description in wound)
if(temp.stage in stage)
temp.stage += 1
if(IsFinalStage(temp.stage))
temp.status &= ~BROKEN
temp.status &= ~SPLINTED
temp.status &= ~ORGAN_BROKEN
temp.status &= ~ORGAN_SPLINTED
temp.stage = 0
temp.perma_injury = 0
temp.brute_dam = temp.min_broken_damage -1
@@ -1472,17 +1472,17 @@ Called when surgeon interupted operation, or was interrupted (was not there with
var/mob/living/carbon/human/H = M
for(var/name in H.organs)
var/datum/organ/external/e = H.organs[name]
if(e.status & DESTROYED) // this is nanites, not space magic
if(e.status & ORGAN_DESTROYED) // this is nanites, not space magic
continue
e.brute_dam = 0.0
e.burn_dam = 0.0
e.status &= ~BANDAGED
e.status &= ~ORGAN_BANDAGED
e.max_damage = initial(e.max_damage)
e.status &= ~BLEEDING
e.status &= ~ORGAN_BLEEDING
e.open = 0
e.status &= ~BROKEN
e.status &= ~DESTROYED
e.status &= ~SPLINTED
e.status &= ~ORGAN_BROKEN
e.status &= ~ORGAN_DESTROYED
e.status &= ~ORGAN_SPLINTED
e.perma_injury = 0
e.update_icon()
H.update_body()
@@ -1516,4 +1516,4 @@ Called when surgeon interupted operation, or was interrupted (was not there with
if(!isnull(user))//If the user still exists. Their mob may not.
user.show_message(text("\red You inject [M]"))
return
return
+2 -2
View File
@@ -327,7 +327,7 @@ WELDINGTOOOL
/obj/item/weapon/weldingtool/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.status & ROBOT) || user.a_intent != "help")
if(!(S.status & ORGAN_ROBOT) || user.a_intent != "help")
return ..()
if(S.brute_dam)
S.heal_damage(15,0,0,1)
@@ -404,4 +404,4 @@ WELDINGTOOOL
M.update_clothing()
return
else
..()
..()
+1 -1
View File
@@ -266,7 +266,7 @@ SHARDS
return
if(!((H.shoes) || (H.wear_suit && H.wear_suit.body_parts_covered & FEET)))
var/datum/organ/external/affecting = H.get_organ(pick("l_foot", "r_foot"))
if(affecting.status & ROBOT)
if(affecting.status & ORGAN_ROBOT)
return
H.Weaken(3)
affecting.take_damage(5, 0)
+3
View File
@@ -106,6 +106,9 @@
/obj/structure/stool/bed/MouseDrop_T(mob/M as mob, mob/user as mob)
if(!istype(M)) return
if(issimpleanimal(user))
user << "\red You are unable to work the complex mechanisms of a buckle!"
return
buckle_mob(M, user)
M.lying = 1
return
+14 -5
View File
@@ -55,7 +55,11 @@
"/obj/item/weapon/cable_coil",
"/obj/item/device/t_scanner",
"/obj/item/device/analyzer",
"/obj/item/device/pda")
"/obj/item/device/pda",
"/obj/item/weapon/lighter",
"/obj/item/weapon/cigpacket",
"/obj/item/weapon/matchbox"
)
/obj/item/weapon/storage/belt/utility/full/New()
@@ -102,12 +106,15 @@
"/obj/item/weapon/reagent_containers/syringe",
"/obj/item/weapon/reagent_containers/glass/dispenser",
"/obj/item/weapon/reagent_containers/hypospray",
"/obj/item/weapon/lighter/zippo",
"/obj/item/weapon/lighter",
"/obj/item/weapon/cigpacket",
"/obj/item/weapon/matchbox",
"/obj/item/weapon/storage/pill_bottle",
"/obj/item/stack/medical",
"/obj/item/device/flashlight/pen",
"/obj/item/device/pda"
"/obj/item/device/pda",
"/obj/item/clothing/mask/surgical",
"/obj/item/clothing/gloves/latex"
)
@@ -141,10 +148,12 @@
"/obj/item/weapon/camera_test",
"/obj/item/weapon/camera_film",
"/obj/item/weapon/cigpacket",
"/obj/item/weapon/zippo",
"/obj/item/weapon/lighter",
"/obj/item/weapon/matchbox",
"/obj/item/device/taperecorder",
"/obj/item/weapon/evidencebag",
"/obj/item/taperoll/police"
"/obj/item/taperoll/police",
"/obj/item/clothing/mask/gas"
)
/obj/item/weapon/storage/belt/soulstone
+1 -1
View File
@@ -179,7 +179,7 @@
M.update_clothing()
src.add_fingerprint(usr)
return
if(over_object == usr && in_range(src, usr) || usr.contents.Find(src))
if( (over_object == usr && in_range(src, usr) || usr.contents.Find(src)) && usr.s_active)
usr.s_active.close(usr)
src.show_to(usr)
return
+1 -1
View File
@@ -41,7 +41,7 @@
/obj/structure/closet/crate/contraband
name = "Poster crate"
desc = "A random assortment of posters manufactured by providers NOT listed under Nanotrasen's whitelist."
desc = "A random assortment of posters manufactured by providers NOT listed under NanoTrasen's whitelist."
icon = 'storage.dmi'
icon_state = "crate"
density = 1
+26
View File
@@ -321,6 +321,32 @@
new /obj/item/weapon/reagent_containers/glass/bottle/ert/boost( src )
return
/obj/item/weapon/storage/PCMBox/New()
..()
contents = list()
sleep(1)
new /obj/item/weapon/module/power_control( src )
new /obj/item/weapon/module/power_control( src )
new /obj/item/weapon/module/power_control( src )
new /obj/item/weapon/module/power_control( src )
new /obj/item/weapon/module/power_control( src )
new /obj/item/weapon/module/power_control( src )
new /obj/item/weapon/module/power_control( src )
return
/obj/item/weapon/storage/AirlockBox/New()
..()
contents = list()
sleep(1)
new /obj/item/weapon/airlock_electronics( src )
new /obj/item/weapon/airlock_electronics( src )
new /obj/item/weapon/airlock_electronics( src )
new /obj/item/weapon/airlock_electronics( src )
new /obj/item/weapon/airlock_electronics( src )
new /obj/item/weapon/airlock_electronics( src )
new /obj/item/weapon/airlock_electronics( src )
return
/obj/item/weapon/storage/box/syndicate/New()
..()
switch (pickweight(list("bloodyspai" = 1, "stealth" = 1, "screwed" = 1, "guns" = 1, "freedom" = 1, "hacker" = 1, "lordsingulo" = 1)))
+1 -1
View File
@@ -375,7 +375,7 @@ A list of items and costs is stored under the datum of every game mode, alongsid
var/obj/item/weapon/implant/uplink/U = src.loc
var/mob/living/A = U.imp_in
var/datum/organ/external/head = A:organs["head"]
head.status |= DESTROYED
head.status |= ORGAN_DESTROYED
spawn(2)
head.droplimb()
del(src.master)
+1 -1
View File
@@ -117,7 +117,7 @@
/obj/machinery/shower
name = "shower"
desc = "The HS-451. Installed in the 2550s by the Nanotrasen Hygiene Division."
desc = "The HS-451. Installed in the 2550s by the NanoTrasen Hygiene Division."
icon = 'watercloset.dmi'
icon_state = "shower"
density = 0
+11 -3
View File
@@ -137,17 +137,25 @@
if("feet")
if(!H.shoes)
affecting = H.get_organ(pick("l_leg", "r_leg"))
if(!(affecting.status & ROBOT))
if(!(affecting.status & ORGAN_ROBOT))
H.Weaken(3)
if("l_hand", "r_hand")
if(!H.gloves)
affecting = H.get_organ(type)
if(!(affecting.status & ROBOT))
if(!(affecting.status & ORGAN_ROBOT))
H.Stun(3)
if(affecting && !(affecting.status & ROBOT))
if(affecting && !(affecting.status & ORGAN_ROBOT))
affecting.take_damage(1, 0)
H.UpdateDamageIcon()
H.updatehealth()
else if(ismouse(target))
var/mob/living/simple_animal/mouse/M = target
src.visible_message("\red \icon[src] <b>SPLAT!</b>")
M.splat()
else if(isroach(target))
var/obj/effect/critter/roach/R = target
src.visible_message("\red \icon[src] <b>CRUNCH!</b>")
R.Die()
playsound(target.loc, 'snap.ogg', 50, 1)
icon_state = "mousetrap"
armed = 0