diff --git a/baystation12.dme b/baystation12.dme
index 1c5182a856f..5ab7609868a 100644
--- a/baystation12.dme
+++ b/baystation12.dme
@@ -237,6 +237,7 @@
#define FILE_DIR "icons/mecha"
#define FILE_DIR "icons/misc"
#define FILE_DIR "icons/mob"
+#define FILE_DIR "icons/mob/human_races"
#define FILE_DIR "icons/obj"
#define FILE_DIR "icons/obj/assemblies"
#define FILE_DIR "icons/obj/atmospherics"
@@ -252,7 +253,6 @@
#define FILE_DIR "icons/vending_icons"
#define FILE_DIR "interface"
#define FILE_DIR "maps"
-#define FILE_DIR "maps/backup"
#define FILE_DIR "maps/RandomZLevels"
#define FILE_DIR "sound"
#define FILE_DIR "sound/AI"
diff --git a/code/WorkInProgress/surgery.dm b/code/WorkInProgress/surgery.dm
index c09d9668fc3..7bb1944ef40 100644
--- a/code/WorkInProgress/surgery.dm
+++ b/code/WorkInProgress/surgery.dm
@@ -326,6 +326,9 @@ proc/spread_germs_to_organ(datum/organ/external/E, mob/living/carbon/human/user)
/datum/surgery_step/fix_vein
required_tool = /obj/item/weapon/FixOVein
+ min_duration = 70
+ max_duration = 90
+
can_use(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
var/datum/organ/external/affected = target.get_organ(target_zone)
@@ -888,7 +891,8 @@ proc/spread_germs_to_organ(datum/organ/external/E, mob/living/carbon/human/user)
target.cores--
user.visible_message("\blue [user] cuts out one of [target]'s cores with \the [tool].",, \
"\blue You cut out one of [target]'s cores with \the [tool]. [target.cores] cores left.")
- new/obj/item/metroid_core(target.loc)
+ if(target.cores >= 0)
+ new/obj/item/metroid_core(target.loc)
if(target.cores <= 0)
target.icon_state = "baby roro dead-nocore"
@@ -992,6 +996,7 @@ proc/spread_germs_to_organ(datum/organ/external/E, mob/living/carbon/human/user)
"\blue You have finished adjusting the area around [target]'s [affected.display_name] with \the [tool].")
affected.status |= ORGAN_ATTACHABLE
affected.amputated = 1
+ affected.setAmputatedTree()
affected.open = 0
fail_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
@@ -1124,8 +1129,8 @@ proc/spread_germs_to_organ(datum/organ/external/E, mob/living/carbon/human/user)
target.custom_pain("Something hurts horribly in your chest!",1)
end_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
- var/msg = "[user] bends [target]'s ribcage back into place with \the [tool]."
- var/self_msg = "You bends [target]'s ribcage back into place with \the [tool]."
+ var/msg = "\blue [user] bends [target]'s ribcage back into place with \the [tool]."
+ var/self_msg = "\blue You bend [target]'s ribcage back into place with \the [tool]."
user.visible_message(msg, self_msg)
target.ribcage_op_stage = 1
@@ -1147,8 +1152,8 @@ proc/spread_germs_to_organ(datum/organ/external/E, mob/living/carbon/human/user)
end_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
- var/msg = "[user] applied \the [tool] to [target]'s ribcage."
- var/self_msg = "You applied \the [tool] to [target]'s ribcage."
+ var/msg = "\blue [user] applied \the [tool] to [target]'s ribcage."
+ var/self_msg = "\blue You applied \the [tool] to [target]'s ribcage."
user.visible_message(msg, self_msg)
target.ribcage_op_stage = 0
@@ -1202,8 +1207,8 @@ proc/spread_germs_to_organ(datum/organ/external/E, mob/living/carbon/human/user)
end_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
var/datum/organ/external/chest/affected = target.get_organ("chest")
- user.visible_message("[user] mends the rupture in [target]'s lungs with \the [tool].", \
- "You mend the rupture in [target]'s lungs with \the [tool]." )
+ user.visible_message("\blue [user] mends the rupture in [target]'s lungs with \the [tool].", \
+ "\blue You mend the rupture in [target]'s lungs with \the [tool]." )
affected.ruptured_lungs = 0
fail_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
diff --git a/code/WorkInProgress/virus2/dishincubator.dm b/code/WorkInProgress/virus2/dishincubator.dm
index e6d0da12394..f2aefe07ead 100644
--- a/code/WorkInProgress/virus2/dishincubator.dm
+++ b/code/WorkInProgress/virus2/dishincubator.dm
@@ -165,5 +165,5 @@
if(beaker)
if(!beaker.reagents.remove_reagent("virusfood",5))
foodsupply += 10
- if(!beaker.reagents.remove_reagent("toxins",1))
+ if(!beaker.reagents.remove_reagent("toxin",1))
toxins += 1
\ No newline at end of file
diff --git a/code/ZAS/FEA_system.dm b/code/ZAS/FEA_system.dm
index 4434d9d2d40..58574baeb7e 100644
--- a/code/ZAS/FEA_system.dm
+++ b/code/ZAS/FEA_system.dm
@@ -277,6 +277,11 @@ datum
proc/ConsiderRebuild(var/turf/simulated/T, var/turf/NT)
+ if(!istype(T)) return
+ //zones should naturally spread to these tiles eventually
+ if(!T.zone || !NT.zone)
+ return
+
if(istype(NT, /turf/simulated) && NT.zone != T.zone)
T.zone.RemoveTurf(NT)
if(NT.zone)
diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm
index 7358096104d..2522523e4d7 100644
--- a/code/datums/datacore.dm
+++ b/code/datums/datacore.dm
@@ -111,29 +111,31 @@ proc/get_id_photo(var/mob/living/carbon/human/H)
var/g = "m"
if (H.gender == FEMALE)
g = "f"
+
+ var/icon/icobase
switch(H.get_species())
if("Tajaran")
- preview_icon = new /icon('icons/effects/species.dmi', "tajaran_[g]_s")
- preview_icon.Blend(new /icon('icons/effects/species.dmi', "tajtail_s"), ICON_OVERLAY)
+ icobase = 'icons/mob/human_races/r_tajaran.dmi'
if( "Soghun")
- preview_icon = new /icon('icons/effects/species.dmi', "lizard_[g]_s")
- preview_icon.Blend(new /icon('icons/effects/species.dmi', "sogtail_s"), ICON_OVERLAY)
+ icobase = 'icons/mob/human_races/r_lizard.dmi'
if("Skrell")
- preview_icon = new /icon('icons/effects/species.dmi', "skrell_[g]_s")
+ icobase = 'icons/mob/human_races/r_skrell.dmi'
else
- preview_icon = new /icon('human.dmi', "torso_[g]_s")
- preview_icon.Blend(new /icon('human.dmi', "chest_[g]_s"), ICON_OVERLAY)
- preview_icon.Blend(new /icon('human.dmi', "groin_[g]_s"), ICON_OVERLAY)
- preview_icon.Blend(new /icon('human.dmi', "head_[g]_s"), ICON_OVERLAY)
+ icobase = 'icons/mob/human_races/r_human.dmi'
- for(var/datum/organ/external/E in H.organs)
- if(E.status & ORGAN_CUT_AWAY) continue
+ preview_icon = new /icon(icobase, "torso_[g]")
+ var/icon/temp
+ temp = new /icon(icobase, "groin_[g]")
+ preview_icon.Blend(temp, ICON_OVERLAY)
+ temp = new /icon(icobase, "head_[g]")
+ preview_icon.Blend(temp, ICON_OVERLAY)
- var/icon/temp = new /icon('human.dmi', "[E.name]_s")
- if(E.status & ORGAN_ROBOT)
- temp.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(0,0,0))
-
- preview_icon.Blend(temp, ICON_OVERLAY)
+ for(var/datum/organ/external/E in H.organs)
+ if(E.status & ORGAN_CUT_AWAY || E.status & ORGAN_DESTROYED) continue
+ temp = new /icon(icobase, "[E.name]")
+ if(E.status & ORGAN_ROBOT)
+ temp.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(0,0,0))
+ preview_icon.Blend(temp, ICON_OVERLAY)
// Skin tone
if(H.get_species() == "Human")
diff --git a/code/datums/organs/organ_external.dm b/code/datums/organs/organ_external.dm
index bb2dad0b769..80f6e3a1958 100644
--- a/code/datums/organs/organ_external.dm
+++ b/code/datums/organs/organ_external.dm
@@ -5,6 +5,7 @@
name = "external"
var/icon_name = null
var/body_part = null
+ var/icon_position = 0
var/damage_state = "00"
var/brute_dam = 0
@@ -63,8 +64,7 @@
var/nux = brute * rand(10,15)
if(config.limbs_can_break && brute_dam >= max_damage * config.organ_health_multiplier)
if(prob(5 * brute))
- status |= ORGAN_DESTROYED
- droplimb()
+ droplimb(1)
return
else if(prob(nux))
@@ -75,8 +75,7 @@
else if(brute > 20)
if(config.limbs_can_break && brute_dam >= max_damage * config.organ_health_multiplier)
if(prob(5 * brute))
- status |= ORGAN_DESTROYED
- droplimb()
+ droplimb(1)
return
// If the limbs can break, make sure we don't exceed the maximum damage a limb can take before breaking
@@ -189,7 +188,7 @@
if(W.internal && !W.is_treated())
// internal wounds get worse over time
W.open_wound(0.1 * wound_update_accuracy)
- owner.vessel.remove_reagent("blood",0.2 * W.damage * wound_update_accuracy)
+ owner.vessel.remove_reagent("blood",0.07 * W.damage * wound_update_accuracy)
if(W.bandaged || W.salved)
// slow healing
@@ -319,10 +318,19 @@
return 1
return 0
+ proc/setAmputatedTree()
+ for(var/datum/organ/external/O in children)
+ O.amputated=amputated
+ O.setAmputatedTree()
+
proc/droplimb(var/override = 0,var/no_explode = 0)
+ if(destspawn) return
if(override)
status |= ORGAN_DESTROYED
if(status & ORGAN_DESTROYED)
+ if(body_part == UPPER_TORSO)
+ return
+
if(status & ORGAN_SPLINTED)
status &= ~ORGAN_SPLINTED
if(implant)
@@ -337,8 +345,8 @@
var/obj/item/weapon/organ/H
switch(body_part)
- // if(UPPER_TORSO) just no.
- // owner.gib()
+// if(UPPER_TORSO)
+// owner.gib()
if(LOWER_TORSO)
owner << "\red You are now sterile."
if(HEAD)
@@ -396,8 +404,25 @@
if(ismonkey(owner))
H.icon_state = "l_foot_l"
owner.u_equip(owner.shoes)
- if(ismonkey(owner))
- H.icon = 'monkey.dmi'
+ if(H)
+ if(ismonkey(owner))
+ H.icon = 'monkey.dmi'
+ else if(ishuman(owner) && owner.dna)
+ var/icon/I
+ switch(owner.dna.mutantrace)
+ if("tajaran")
+ I = new('icons/mob/human_races/r_tajaran.dmi')
+ if("lizard")
+ I = new('icons/mob/human_races/r_lizard.dmi')
+ if("skrell")
+ I = new('icons/mob/human_races/r_skrell.dmi')
+ else
+ I = new('icons/mob/human_races/r_human.dmi')
+ if(I)
+ H.icon = I.MakeLying()
+ else
+ H.icon_state = initial(H.icon_state)+"_l"
+
var/lol = pick(cardinal)
step(H,lol)
destspawn = 1
@@ -573,6 +598,7 @@
max_damage = 75
min_broken_damage = 30
body_part = LEG_LEFT
+ icon_position = LEFT
/datum/organ/external/r_arm
name = "r_arm"
@@ -589,6 +615,7 @@
max_damage = 75
min_broken_damage = 30
body_part = LEG_RIGHT
+ icon_position = RIGHT
/datum/organ/external/l_foot
name = "l_foot"
@@ -597,6 +624,7 @@
max_damage = 40
min_broken_damage = 15
body_part = FOOT_LEFT
+ icon_position = LEFT
/datum/organ/external/r_foot
name = "r_foot"
@@ -605,6 +633,7 @@
max_damage = 40
min_broken_damage = 15
body_part = FOOT_RIGHT
+ icon_position = RIGHT
/datum/organ/external/r_hand
name = "r_hand"
@@ -627,7 +656,7 @@
****************************************************/
obj/item/weapon/organ
- icon = 'human.dmi'
+ icon = 'icons/mob/human_races/r_human.dmi'
obj/item/weapon/organ/New(loc, mob/living/carbon/human/H)
..(loc)
@@ -718,25 +747,25 @@ obj/item/weapon/organ/head/attackby(obj/item/weapon/W as obj, mob/user as mob)
obj/item/weapon/organ/l_arm
name = "left arm"
- icon_state = "l_arm_l"
+ icon_state = "l_arm"
obj/item/weapon/organ/l_foot
name = "left foot"
- icon_state = "l_foot_l"
+ icon_state = "l_foot"
obj/item/weapon/organ/l_hand
name = "left hand"
- icon_state = "l_hand_l"
+ icon_state = "l_hand"
obj/item/weapon/organ/l_leg
name = "left leg"
- icon_state = "l_leg_l"
+ icon_state = "l_leg"
obj/item/weapon/organ/r_arm
name = "right arm"
- icon_state = "r_arm_l"
+ icon_state = "r_arm"
obj/item/weapon/organ/r_foot
name = "right foot"
- icon_state = "r_foot_l"
+ icon_state = "r_foot"
obj/item/weapon/organ/r_hand
name = "right hand"
- icon_state = "r_hand_l"
+ icon_state = "r_hand"
obj/item/weapon/organ/r_leg
name = "right leg"
- icon_state = "r_leg_l"
+ icon_state = "r_leg"
diff --git a/code/defines/procs/icon_procs.dm b/code/defines/procs/icon_procs.dm
index c8d731bcde1..ce56408ead4 100644
--- a/code/defines/procs/icon_procs.dm
+++ b/code/defines/procs/icon_procs.dm
@@ -7,6 +7,16 @@
#define TO_HEX_DIGIT(n) ascii2text((n&15) + ((n&15)<10 ? 48 : 87))
icon
+ proc/MakeLying()
+ var/icon/I = new(src,dir=SOUTH)
+ I.BecomeLying()
+ return I
+
+ proc/BecomeLying()
+ Turn(90)
+ Shift(SOUTH,6)
+ Shift(EAST,1)
+
// Multiply all alpha values by this float
proc/ChangeOpacity(opacity = 1.0)
MapColors(1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,opacity, 0,0,0,0)
diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm
index 29eb5cd6763..e0e15c0ecd3 100644
--- a/code/game/area/areas.dm
+++ b/code/game/area/areas.dm
@@ -123,7 +123,7 @@
D.open()
for (var/mob/living/silicon/ai/aiPlayer in player_list)
aiPlayer.cancelAlarm("Fire", src, src)
- for (var/obj/machinery/computer/station_alert/a in player_list)
+ for (var/obj/machinery/computer/station_alert/a in world)
a.cancelAlarm("Fire", src, src)
return
diff --git a/code/game/dna.dm b/code/game/dna.dm
index d4628e6f9a7..c6b27658158 100644
--- a/code/game/dna.dm
+++ b/code/game/dna.dm
@@ -116,9 +116,10 @@
uni_identity = temp
var/mutstring = ""
- for(var/i = 1, i <= 13, i++)
+ for(var/i = 1, i <= STRUCDNASIZE, i++)
mutstring += add_zero2(num2hex(rand(1,1024)),3)
+
struc_enzymes = mutstring
unique_enzymes = md5(character.real_name)
@@ -399,9 +400,17 @@
var/old_mutations = M.mutations
M.mutations = list()
- M.see_in_dark = 2
- M.see_invisible = 0
+// M.see_in_dark = 2
+// M.see_invisible = 0
+ if(PLANT in old_mutations)
+ M.mutations.Add(PLANT)
+ if(SKELETON in old_mutations)
+ M.mutations.Add(SKELETON)
+ if(FAT in old_mutations)
+ M.mutations.Add(FAT)
+ if(HUSK in old_mutations)
+ M.mutations.Add(HUSK)
if(ismuton(NOBREATHBLOCK,M))
if(probinj(45,inj) || (mNobreath in old_mutations))
@@ -478,9 +487,9 @@
if (isblockon(getblock(M.dna.struc_enzymes, XRAYBLOCK,3),XRAYBLOCK))
if(probinj(30,inj) || (XRAY in old_mutations))
M << "\blue The walls suddenly disappear."
- M.sight |= (SEE_MOBS|SEE_OBJS|SEE_TURFS)
- M.see_in_dark = 8
- M.see_invisible = 2
+// M.sight |= (SEE_MOBS|SEE_OBJS|SEE_TURFS)
+// M.see_in_dark = 8
+// M.see_invisible = 2
M.mutations.Add(XRAY)
if (isblockon(getblock(M.dna.struc_enzymes, NERVOUSBLOCK,3),NERVOUSBLOCK))
M.disabilities |= NERVOUS
@@ -1648,4 +1657,4 @@
src.add_fingerprint(usr)
src.updateUsrDialog()
return
-/////////////////////////// DNA MACHINES
\ No newline at end of file
+/////////////////////////// DNA MACHINES
diff --git a/code/game/gamemodes/gameticker.dm b/code/game/gamemodes/gameticker.dm
index 8dce6c6e441..fbdc336282d 100644
--- a/code/game/gamemodes/gameticker.dm
+++ b/code/game/gamemodes/gameticker.dm
@@ -300,7 +300,8 @@ var/global/datum/controller/gameticker/ticker
emergency_shuttle.process()
- if(!mode.explosion_in_progress && mode.check_finished())
+ var/mode_finished = mode.check_finished() || (emergency_shuttle.location == 2 && emergency_shuttle.alert == 1)
+ if(!mode.explosion_in_progress && mode_finished)
current_state = GAME_STATE_FINISHED
spawn
diff --git a/code/game/jobs/access.dm b/code/game/jobs/access.dm
index 37f1a721aae..2ea34728e9e 100644
--- a/code/game/jobs/access.dm
+++ b/code/game/jobs/access.dm
@@ -499,7 +499,7 @@
// hack for alt titles
if(istype(loc, /mob))
var/mob/M = loc
- if(M.mind.role_alt_title == jobName && M.mind.assigned_role in get_all_jobs())
+ if(M.mind && M.mind.role_alt_title == jobName && M.mind.assigned_role in get_all_jobs())
return M.mind.assigned_role
if(istype(src, /obj/item/device/pda))
diff --git a/code/game/machinery/adv_med.dm b/code/game/machinery/adv_med.dm
index 5e6f6e9d1fc..3bb0f83bad9 100644
--- a/code/game/machinery/adv_med.dm
+++ b/code/game/machinery/adv_med.dm
@@ -235,6 +235,9 @@
else
dat += text("[]\tHealth %: [] ([])
", (occupant.health > 50 ? "" : ""), occupant.health, t1)
+ if(occupant.virus2)
+ dat += text("Viral pathogen detected in blood stream.
")
+
dat += text("[]\t-Brute Damage %: []
", (occupant.getBruteLoss() < 60 ? "" : ""), occupant.getBruteLoss())
dat += text("[]\t-Respiratory Damage %: []
", (occupant.getOxyLoss() < 60 ? "" : ""), occupant.getOxyLoss())
dat += text("[]\t-Toxin Content %: []
", (occupant.getToxLoss() < 60 ? "" : ""), occupant.getToxLoss())
diff --git a/code/game/machinery/bots/ed209bot.dm b/code/game/machinery/bots/ed209bot.dm
index 4fa8f095fe0..f43b43ac07d 100644
--- a/code/game/machinery/bots/ed209bot.dm
+++ b/code/game/machinery/bots/ed209bot.dm
@@ -820,14 +820,14 @@ Auto Patrol: []"},
projectile = /obj/item/projectile/energy/electrode
else if(lasercolor == "b")
if (src.emagged == 2)
- projectile = /obj/item/projectile/beam/omnitag
+ projectile = /obj/item/projectile/beam/lastertag/omni
else
- projectile = /obj/item/projectile/beam/bluetag
+ projectile = /obj/item/projectile/beam/lastertag/blue
else if(lasercolor == "r")
if (src.emagged == 2)
- projectile = /obj/item/projectile/beam/omnitag
+ projectile = /obj/item/projectile/beam/lastertag/omni
else
- projectile = /obj/item/projectile/beam/redtag
+ projectile = /obj/item/projectile/beam/lastertag/red
if (!( istype(U, /turf) ))
return
@@ -1011,7 +1011,7 @@ Auto Patrol: []"},
/obj/machinery/bot/ed209/bullet_act(var/obj/item/projectile/Proj)
if((src.lasercolor == "b") && (src.disabled == 0))
- if(istype(Proj, /obj/item/projectile/beam/redtag))
+ if(istype(Proj, /obj/item/projectile/beam/lastertag/red))
src.disabled = 1
del (Proj)
sleep(100)
@@ -1019,7 +1019,7 @@ Auto Patrol: []"},
else
..()
else if((src.lasercolor == "r") && (src.disabled == 0))
- if(istype(Proj, /obj/item/projectile/beam/bluetag))
+ if(istype(Proj, /obj/item/projectile/beam/lastertag/blue))
src.disabled = 1
del (Proj)
sleep(100)
diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm
index cba4e84c484..4370b1044f5 100644
--- a/code/game/machinery/cloning.dm
+++ b/code/game/machinery/cloning.dm
@@ -133,7 +133,7 @@
return 0
- src.heal_level = rand(75,100) //Randomizes what health the clone is when ejected
+ src.heal_level = rand(0,40) //Randomizes what health the clone is when ejected
src.attempting = 1 //One at a time!!
src.locked = 1
diff --git a/code/game/machinery/hydroponics.dm b/code/game/machinery/hydroponics.dm
index 16fd85b8dc6..b611b974a30 100644
--- a/code/game/machinery/hydroponics.dm
+++ b/code/game/machinery/hydroponics.dm
@@ -941,8 +941,9 @@ obj/machinery/hydroponics/attackby(var/obj/item/O as obj, var/mob/user as mob)
if(se)
podman.dna.struc_enzymes = se
if(!prob(potency)) //if it fails, plantman!
- if(podman.dna)
- podman.dna.mutantrace = "plant"
+ if(podman)
+// podman.dna.mutantrace = "plant"
+ podman.mutations.Add(PLANT)
podman.update_mutantrace()
else //else, one packet of seeds. maybe two
diff --git a/code/game/machinery/portable_turret.dm b/code/game/machinery/portable_turret.dm
index 7be13d3d1e3..a16b545c196 100644
--- a/code/game/machinery/portable_turret.dm
+++ b/code/game/machinery/portable_turret.dm
@@ -76,8 +76,8 @@
// All energy-based weapons are applicable
switch(E.type)
if(/obj/item/weapon/gun/energy/laser/bluetag)
- projectile = /obj/item/projectile/beam/bluetag
- eprojectile = /obj/item/projectile/beam/omnitag//This bolt will stun ERRYONE with a vest
+ projectile = /obj/item/projectile/beam/lastertag/blue
+ eprojectile = /obj/item/projectile/beam/lastertag/omni//This bolt will stun ERRYONE with a vest
iconholder = null
reqpower = 100
lasercolor = "b"
@@ -90,8 +90,8 @@
shot_delay = 30
if(/obj/item/weapon/gun/energy/laser/redtag)
- projectile = /obj/item/projectile/beam/redtag
- eprojectile = /obj/item/projectile/beam/omnitag
+ projectile = /obj/item/projectile/beam/lastertag/red
+ eprojectile = /obj/item/projectile/beam/lastertag/omni
iconholder = null
reqpower = 100
lasercolor = "r"
@@ -375,13 +375,13 @@ Status: []
"},
if (src.health <= 0)
src.die() // the death process :(
if((src.lasercolor == "b") && (src.disabled == 0))
- if(istype(Proj, /obj/item/projectile/beam/redtag))
+ if(istype(Proj, /obj/item/projectile/beam/lastertag/red))
src.disabled = 1
del (Proj)
sleep(100)
src.disabled = 0
if((src.lasercolor == "r") && (src.disabled == 0))
- if(istype(Proj, /obj/item/projectile/beam/bluetag))
+ if(istype(Proj, /obj/item/projectile/beam/lastertag/blue))
src.disabled = 1
del (Proj)
sleep(100)
diff --git a/code/game/machinery/turrets.dm b/code/game/machinery/turrets.dm
index 990b823ef15..ae5dd51891d 100644
--- a/code/game/machinery/turrets.dm
+++ b/code/game/machinery/turrets.dm
@@ -221,9 +221,9 @@
if(4)
A = new /obj/item/projectile/change( loc )
if(5)
- A = new /obj/item/projectile/beam/bluetag( loc )
+ A = new /obj/item/projectile/beam/lastertag/blue( loc )
if(6)
- A = new /obj/item/projectile/beam/redtag( loc )
+ A = new /obj/item/projectile/beam/lastertag/red( loc )
A.original = target.loc
use_power(500)
else
diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm
index 2793ce28d80..55b2be019e9 100644
--- a/code/game/objects/items/devices/scanners.dm
+++ b/code/game/objects/items/devices/scanners.dm
@@ -158,6 +158,10 @@ MASS SPECTROMETER
if(e.status & ORGAN_BROKEN)
user.show_message(text("\red Bone fractures detected. Advanced scanner required for location."), 1)
break
+ for(var/datum/organ/external/e in H.organs)
+ for(var/datum/wound/W in e.wounds) if(W.internal)
+ user.show_message(text("\red Internal bleeding detected. Advanced scanner required for location."), 1)
+ break
if(M:vessel)
var/blood_volume = round(M:vessel.get_reagent_amount("blood"))
var/blood_percent = blood_volume / 560
diff --git a/code/game/objects/items/devices/taperecorder.dm b/code/game/objects/items/devices/taperecorder.dm
index e98c28e7dc4..555dbe1caea 100644
--- a/code/game/objects/items/devices/taperecorder.dm
+++ b/code/game/objects/items/devices/taperecorder.dm
@@ -124,8 +124,8 @@
usr << "You can't clear the memory while playing or recording!"
return
else
- storedinfo -= storedinfo
- timestamp -= timestamp
+ if(storedinfo) storedinfo.Cut()
+ if(timestamp) timestamp.Cut()
timerecorded = 0
usr << "Memory cleared."
return
diff --git a/code/game/objects/items/weapons/kitchen.dm b/code/game/objects/items/weapons/kitchen.dm
index b91b5a560d3..2ab6bbc9caf 100644
--- a/code/game/objects/items/weapons/kitchen.dm
+++ b/code/game/objects/items/weapons/kitchen.dm
@@ -86,13 +86,12 @@
else
H.Stun(time)
if(H.stat != 2) H.stat = 1
- for(var/mob/O in viewers(H, null))
- O.show_message(text("\red [] has been knocked unconscious!", H), 1, "\red You hear someone fall.", 2)
+ user.visible_message("\red [H] has been knocked unconscious!", "\red You knock [H] unconscious!")
+ return
else
- H << text("\red [] tried to knock you unconscious!",user)
+ H.visible_message("\red [user] tried to knock [H] unconscious!", "\red [user] tried to knock you unconscious!")
H.eye_blurry += 3
-
- return
+ return ..()
/*
* Trays - Agouri
diff --git a/code/game/objects/items/weapons/manuals.dm b/code/game/objects/items/weapons/manuals.dm
index 5d67a68caca..6cba41021be 100644
--- a/code/game/objects/items/weapons/manuals.dm
+++ b/code/game/objects/items/weapons/manuals.dm
@@ -589,7 +589,7 @@
-
+