mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-31 07:57:47 +01:00
Merge branch 'master' of https://github.com/Baystation12/Baystation12
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:
@@ -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 ..()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
..()
|
||||
..()
|
||||
|
||||
Reference in New Issue
Block a user