diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm
index 56a8181f846..3c66e61d80a 100644
--- a/code/game/objects/items/stacks/medical.dm
+++ b/code/game/objects/items/stacks/medical.dm
@@ -42,8 +42,19 @@
user << "\red The wounds on [M]'s [affecting.display_name] have already been bandaged."
return 1
else
- user.visible_message( "\blue [user] bandages wounds on [M]'s [affecting.display_name].", \
- "\blue You bandage wounds on [M]'s [affecting.display_name]." )
+ for (var/datum/wound/W in affecting.wounds)
+ if (W.internal)
+ continue
+ if (W.current_stage <= W.max_bleeding_stage)
+ user.visible_message( "\blue [user] bandages [W.desc] on [M]'s [affecting.display_name].", \
+ "\blue You bandage [W.desc] on [M]'s [affecting.display_name]." )
+ H.add_side_effect("Itch")
+ else if (istype(W,/datum/wound/bruise))
+ user.visible_message( "\blue [user] places bruise patch over [W.desc] on [M]'s [affecting.display_name].", \
+ "\blue You place bruise patch over [W.desc] on [M]'s [affecting.display_name]." )
+ else
+ user.visible_message( "\blue [user] places bandaid over [W.desc] on [M]'s [affecting.display_name].", \
+ "\blue You place bandaid over [W.desc] on [M]'s [affecting.display_name]." )
else if(src.heal_burn)
if(!affecting.salve())
@@ -53,7 +64,6 @@
user.visible_message( "\blue [user] salves wounds on [M]'s [affecting.display_name].", \
"\blue You salve wounds on [M]'s [affecting.display_name]." )
- H.add_side_effect("Itch")
H.UpdateDamageIcon()
else
M.heal_organ_damage((src.heal_brute/2), (src.heal_burn/2))
diff --git a/code/game/verbs/who.dm b/code/game/verbs/who.dm
index c7f7a3774f7..a07d07f9624 100644
--- a/code/game/verbs/who.dm
+++ b/code/game/verbs/who.dm
@@ -47,7 +47,7 @@
set name = "Adminwho"
var/msg = "Current Admins:\n"
- var/num_mods_online = 0
+ var/num_admins_online = 0
if(holder)
for(var/client/C in admins)
if(C.holder.rank != "Moderator")
@@ -66,17 +66,15 @@
if(C.is_afk())
msg += " (AFK)"
msg += "\n"
- else
- num_mods_online++
+ num_admins_online++
else
for(var/client/C in admins)
if(C.holder.rank != "Moderator")
if(!C.holder.fakekey)
msg += "\t[C] is a [C.holder.rank]\n"
- else
- num_mods_online++
+ num_admins_online++
- msg += "There are [num_mods_online] moderators online\n"
+ msg += "There are [num_admins_online] administrators online\n"
src << msg
/client/verb/modwho()
@@ -84,7 +82,7 @@
set name = "Modwho"
var/msg = "Current Moderators:\n"
- var/num_admins_online = 0
+ var/num_mods_online = 0
if(holder)
for(var/client/C in admins)
if(C.holder.rank == "Moderator")
@@ -100,14 +98,12 @@
if(C.is_afk())
msg += " (AFK)"
msg += "\n"
- else
- num_admins_online++
+ num_mods_online++
else
for(var/client/C in admins)
if(C.holder.rank == "Moderator")
msg += "\t[C] is a [C.holder.rank]\n"
- else
- num_admins_online++
+ num_mods_online++
- msg += "There are [num_admins_online] admins online\n"
+ msg += "There are [num_mods_online] moderators online\n"
src << msg
diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm
index c17d4a86fcb..c54bc49c9db 100644
--- a/code/modules/reagents/Chemistry-Machinery.dm
+++ b/code/modules/reagents/Chemistry-Machinery.dm
@@ -186,6 +186,9 @@
var/mode = 0
var/condi = 0
var/useramount = 30 // Last used amount
+ var/bottlesprite = "1" //yes, strings
+ var/pillsprite = "1"
+ var/client/has_sprites = list()
/obj/machinery/chem_master/New()
var/datum/reagents/R = new/datum/reagents(100)
@@ -267,7 +270,18 @@
if (href_list["analyze"])
var/dat = ""
if(!condi)
- dat += "
Chemmaster 3000Chemical infos:
Name:
[href_list["name"]]
Description:
[href_list["desc"]]
(Back)"
+ if(href_list["name"] == "Blood")
+ var/datum/reagent/blood/G
+ for(var/datum/reagent/F in R.reagent_list)
+ if(F.name == href_list["name"])
+ G = F
+ break
+ var/A = G.name
+ var/B = G.data["blood_type"]
+ var/C = G.data["blood_DNA"]
+ dat += "Chemmaster 3000Chemical infos:
Name:
[A]
Description:
Blood Type: [B]
DNA: [C]
(Back)"
+ else
+ dat += "Chemmaster 3000Chemical infos:
Name:
[href_list["name"]]
Description:
[href_list["desc"]]
(Back)"
else
dat += "Condimaster 3000Condiment infos:
Name:
[href_list["name"]]
Description:
[href_list["desc"]]
(Back)"
usr << browse(dat, "window=chem_master;size=575x400")
@@ -319,19 +333,13 @@
icon_state = "mixer0"
else if (href_list["createpill"])
var/name = reject_bad_text(input(usr,"Name:","Name your pill!",reagents.get_master_reagent_name()))
- var/obj/item/weapon/reagent_containers/pill/P
-
- if(loaded_pill_bottle && loaded_pill_bottle.contents.len < loaded_pill_bottle.storage_slots)
- P = new/obj/item/weapon/reagent_containers/pill(loaded_pill_bottle)
- else
- P = new/obj/item/weapon/reagent_containers/pill(src.loc)
-
+ var/obj/item/weapon/reagent_containers/pill/P = new/obj/item/weapon/reagent_containers/pill(src.loc)
if(!name) name = reagents.get_master_reagent_name()
P.name = "[name] pill"
P.pixel_x = rand(-7, 7) //random position
P.pixel_y = rand(-7, 7)
+ P.icon_state = "pill"+pillsprite
reagents.trans_to(P,50)
-
else if (href_list["createbottle"])
if(!condi)
var/name = reject_bad_text(input(usr,"Name:","Name your bottle!",reagents.get_master_reagent_name()))
@@ -340,14 +348,31 @@
P.name = "[name] bottle"
P.pixel_x = rand(-7, 7) //random position
P.pixel_y = rand(-7, 7)
+ P.icon_state = "bottle"+bottlesprite
reagents.trans_to(P,30)
-
- var/bottle_num = min(max(input("Enter bottle design number","Bottle number"), 0), 20) as num
- P.icon_state = "bottle[bottle_num]"
- desc = "A small bottle, design number #[bottle_num]."
else
var/obj/item/weapon/reagent_containers/food/condiment/P = new/obj/item/weapon/reagent_containers/food/condiment(src.loc)
reagents.trans_to(P,50)
+ else if(href_list["change_pill"])
+ #define MAX_PILL_SPRITE 20 //max icon state of the pill sprites
+ var/dat = ""
+ for(var/i = 1 to MAX_PILL_SPRITE)
+ dat += " |
"
+ dat += "
"
+ usr << browse(dat, "window=chem_master")
+ return
+ else if(href_list["change_bottle"])
+ #define MAX_BOTTLE_SPRITE 20 //max icon state of the bottle sprites
+ var/dat = ""
+ for(var/i = 1 to MAX_BOTTLE_SPRITE)
+ dat += " |
"
+ dat += "
"
+ usr << browse(dat, "window=chem_master")
+ return
+ else if(href_list["pill_sprite"])
+ pillsprite = href_list["pill_sprite"]
+ else if(href_list["bottle_sprite"])
+ bottlesprite = href_list["bottle_sprite"]
src.updateUsrDialog()
return
@@ -362,6 +387,13 @@
if(stat & BROKEN)
return
user.set_machine(src)
+ if(!(user.client in has_sprites))
+ spawn()
+ has_sprites += user.client
+ for(var/i = 1 to MAX_PILL_SPRITE)
+ usr << browse_rsc(icon('chemical.dmi', "pill" + num2text(i)), "pill[i].png")
+ for(var/i = 1 to MAX_BOTTLE_SPRITE)
+ usr << browse_rsc(icon('chemical.dmi', "bottle" + num2text(i)), "bottle[i].png")
var/dat = ""
if(!beaker)
dat = "Please insert beaker.
"
@@ -403,8 +435,8 @@
else
dat += "Empty
"
if(!condi)
- dat += "
Create pill (50 units max)
"
- dat += "Create bottle (30 units max)"
+ dat += "
Create pill (50 units max)
"
+ dat += "Create bottle (30 units max)
"
else
dat += "Create bottle (50 units max)"
if(!condi)
diff --git a/code/modules/surgery/face.dm b/code/modules/surgery/face.dm
index 5c769159997..2e6e0c65d05 100644
--- a/code/modules/surgery/face.dm
+++ b/code/modules/surgery/face.dm
@@ -11,7 +11,7 @@
var/datum/organ/external/affected = target.get_organ(target_zone)
if (!affected)
return 0
- return target_zone == "mouth" && affected.open == 2 && !(affected.status & ORGAN_BLEEDING)
+ return target_zone == "mouth"
/datum/surgery_step/generic/cut_face
required_tool = /obj/item/weapon/scalpel