Fix for labeling virus dishes. Removed health analyzer from first-aid kit.

Made bruise packs and ointment only work above 50 health.
Added advanced treatment for future use.
Made MD's and CMO spawn with health analyzers.
Reduced medical equipment in non-medbay areas.
Made Health Scanner HUDs displays more granular.
This commit is contained in:
Ren Erthilo
2012-03-15 21:42:37 +00:00
parent ab063d24f7
commit 61a82b22bb
11 changed files with 169 additions and 51 deletions

View File

@@ -138,7 +138,7 @@
growth = rand(5, 50)
/obj/item/weapon/virusdish/attackby(var/obj/item/weapon/W as obj,var/mob/living/carbon/user as mob)
if(istype(W,/obj/item/weapon/hand_labeler) || istype(W,/obj/item/weapon/reagent_containers/syringe))
if(istype(W,/obj/item/weapon/label) || istype(W,/obj/item/weapon/reagent_containers/syringe))
return
..()
if(prob(50))

View File

@@ -197,7 +197,7 @@
/obj/item/weapon/storage/firstaid
name = "First-Aid"
desc = "In case of an injury."
desc = "In case of injury."
icon_state = "firstaid"
throw_speed = 2
throw_range = 8
@@ -205,7 +205,7 @@
/obj/item/weapon/storage/firstaid/fire
name = "Fire First Aid"
desc = "A kit for when you accidently burn yourself."
desc = "Contains burn treatments."
icon_state = "ointment"
item_state = "firstaid-ointment"
@@ -220,13 +220,13 @@
/obj/item/weapon/storage/firstaid/toxin
name = "Toxin First Aid"
desc = "Used to treat when you have a high amount of toxins in your body."
desc = "Contains anti-toxin medication."
icon_state = "antitoxin"
item_state = "firstaid-toxin"
/obj/item/weapon/storage/firstaid/o2
name = "Oxygen Deprivation First Aid"
desc = "A box full of oxygenating goodies."
desc = "Contains oxygen deprivation medication."
icon_state = "o2"
item_state = "firstaid-o2"
@@ -248,8 +248,6 @@
icon_state = "glasses"
item_state = "syringe_kit"
/obj/item/weapon/storage/handcuff_kit
name = "Spare Handcuffs"
desc = "A box full of handcuffs."

View File

@@ -390,7 +390,7 @@
singular_name = "bruise pack"
desc = "A pack designed to treat blunt-force trauma."
icon_state = "brutepack"
heal_brute = 60
heal_brute = 40
origin_tech = "biotech=1"
/obj/item/stack/medical/ointment
@@ -401,6 +401,22 @@
heal_burn = 40
origin_tech = "biotech=1"
/obj/item/stack/medical/advanced/bruise_pack
name = "advanced trauma kit"
singular_name = "advanced bruise pack"
desc = "An advanced trauma kit for severe injuries."
icon_state = "brutepack"
heal_brute = 40
origin_tech = "biotech=1"
/obj/item/stack/medical/advanced/ointment
name = "advanced burn kit"
singular_name = "advanced burn kit"
desc = "An advanced treatment kit for severe burns."
icon_state = "ointment"
heal_burn = 40
origin_tech = "biotech=1"
/obj/item/weapon/c_tube
name = "cardboard tube"
desc = "A tube made of cardboard."

View File

@@ -18,6 +18,7 @@
H.equip_if_possible(new /obj/item/clothing/suit/storage/labcoat/cmo(H), H.slot_wear_suit)
H.equip_if_possible(new /obj/item/weapon/storage/firstaid/regular(H), H.slot_l_hand)
H.equip_if_possible(new /obj/item/device/flashlight/pen(H), H.slot_s_store)
H.equip_if_possible(new /obj/item/device/healthanalyzer(H), H.slot_r_store)
return 1
@@ -43,6 +44,7 @@
H.equip_if_possible(new /obj/item/clothing/suit/storage/labcoat(H), H.slot_wear_suit)
H.equip_if_possible(new /obj/item/weapon/storage/firstaid/regular(H), H.slot_l_hand)
H.equip_if_possible(new /obj/item/device/flashlight/pen(H), H.slot_s_store)
H.equip_if_possible(new /obj/item/device/healthanalyzer(H), H.slot_r_store)
return 1

View File

@@ -308,6 +308,10 @@ proc/analyze_health_less_info(mob/living/carbon/M as mob, mob/user as mob)
user.show_message(text("\red Significant brain damage detected. Subject may have had a concussion."), 1)
if (M.virus2 || M.reagents.reagent_list.len > 0)
user.show_message(text("\red Unknown substance detected in blood."), 1)
/* for(var/datum/organ/external/E in src)
if (!E.broken <= 0)
user.show_message(text("\red Bone fractures detected."), 1)*/
//If someone can make this work I would be extremely grateful. -Erthilo
return
/obj/item/device/healthanalyzer/attack(mob/M as mob, mob/user as mob)

View File

@@ -7,6 +7,96 @@ MEDICAL
/obj/item/stack/medical/attack(mob/living/carbon/M as mob, mob/user as mob)
if (M.stat == 2)
var/t_him = "it"
if (M.gender == MALE)
t_him = "him"
else if (M.gender == FEMALE)
t_him = "her"
user << "\red \The [M] is dead, you cannot help [t_him]!"
return
if (M.health < 50)
var/t_him = "it"
if (M.gender == MALE)
t_him = "him"
else if (M.gender == FEMALE)
t_him = "her"
user << "\red \The [M] is wounded badly, this item cannot help [t_him]!"
return
if (!istype(M))
user << "\red \The [src] cannot be applied to [M]!"
return 1
if ( ! (istype(user, /mob/living/carbon/human) || \
istype(user, /mob/living/silicon) || \
istype(user, /mob/living/carbon/monkey) && ticker && ticker.mode.name == "monkey") )
user << "\red You don't have the dexterity to do this!"
return 1
if (user)
if (M != user)
user.visible_message( \
"\blue [M] has been applied with [src] by [user].", \
"\blue You apply \the [src] to [M]." \
)
else
var/t_himself = "itself"
if (user.gender == MALE)
t_himself = "himself"
else if (user.gender == FEMALE)
t_himself = "herself"
user.visible_message( \
"\blue [M] applied [src] on [t_himself].", \
"\blue You apply \the [src] on yourself." \
)
if (istype(M, /mob/living/carbon/human))
var/mob/living/carbon/human/H = M
var/datum/organ/external/affecting = H.get_organ("chest")
if(istype(user, /mob/living/carbon/human))
var/mob/living/carbon/human/user2 = user
affecting = H.get_organ(check_zone(user2.zone_sel.selecting))
else
if(!istype(affecting, /datum/organ/external) || affecting:burn_dam <= 0)
affecting = H.get_organ("head")
if (affecting.heal_damage(src.heal_brute, src.heal_burn))
H.UpdateDamageIcon()
if(H.bloodloss > 0 && heal_brute > 0) // fix wounds too if bruise pack
var/stoped = 0
for(var/datum/organ/external/wound/W in affecting.wounds)
if(W.bleeding)
W.stopbleeding()
stoped = 0
break
if(!stoped)
// user << "There is no bleeding wound at [t]" //code no longer in a dedicated obj, thus this doesn't really matter
return
if (user)
if (M != user)
for (var/mob/O in viewers(H, null))
O.show_message("\red [H] has been bandaged with [src] by [user]", 1)
else
var/t_himself = "itself"
if (user.gender == MALE)
t_himself = "himself"
else if (user.gender == FEMALE)
t_himself = "herself"
for (var/mob/O in viewers(H, null))
O.show_message("\red [H] bandaged [t_himself] with [src]", 1)
M.updatehealth()
else
M.heal_organ_damage((src.heal_brute/2), (src.heal_burn/2))
use(1)
/obj/item/stack/medical/advanced/attack(mob/living/carbon/M as mob, mob/user as mob)
if (M.stat == 2)
var/t_him = "it"
if (M.gender == MALE)
@@ -94,4 +184,4 @@ MEDICAL
else
M.heal_organ_damage((src.heal_brute/2), (src.heal_burn/2))
use(1)
use(1)

View File

@@ -6,11 +6,11 @@
icon_state = pick("ointment","firefirstaid")
new /obj/item/device/healthanalyzer( src )
new /obj/item/weapon/reagent_containers/syringe/inaprovaline( src )
new /obj/item/stack/medical/ointment( src )
new /obj/item/stack/medical/ointment( src )
new /obj/item/weapon/reagent_containers/pill/kelotane( src )
new /obj/item/weapon/reagent_containers/pill/kelotane( src )
new /obj/item/weapon/reagent_containers/pill/kelotane( src )
new /obj/item/weapon/reagent_containers/pill/kelotane( src ) //Replaced ointment with these since they actually work --Errorage
return
@@ -26,45 +26,42 @@
return
/obj/item/weapon/storage/firstaid/regular/New()
..()
if (empty) return
new /obj/item/stack/medical/bruise_pack(src)
new /obj/item/stack/medical/bruise_pack(src)
new /obj/item/stack/medical/bruise_pack(src)
new /obj/item/stack/medical/ointment(src)
new /obj/item/stack/medical/ointment(src)
new /obj/item/device/healthanalyzer(src)
new /obj/item/weapon/reagent_containers/syringe/inaprovaline( src )
new /obj/item/stack/medical/bruise_pack(src)
new /obj/item/stack/medical/bruise_pack(src)
new /obj/item/stack/medical/bruise_pack(src)
new /obj/item/stack/medical/ointment(src)
new /obj/item/stack/medical/ointment(src)
new /obj/item/stack/medical/ointment(src)
return
/obj/item/weapon/storage/firstaid/toxin/New()
..()
if (empty) return
icon_state = pick("antitoxin","antitoxfirstaid","antitoxfirstaid2","antitoxfirstaid3")
new /obj/item/weapon/reagent_containers/syringe/antitoxin( src )
new /obj/item/weapon/reagent_containers/syringe/antitoxin( src )
new /obj/item/weapon/reagent_containers/syringe/antitoxin( src )
new /obj/item/weapon/reagent_containers/pill/antitox( src )
new /obj/item/weapon/reagent_containers/pill/antitox( src )
new /obj/item/weapon/reagent_containers/pill/antitox( src )
new /obj/item/device/healthanalyzer( src )
new /obj/item/weapon/reagent_containers/syringe/antitoxin( src )
new /obj/item/weapon/reagent_containers/syringe/antitoxin( src )
new /obj/item/weapon/reagent_containers/pill/antitox( src )
new /obj/item/weapon/reagent_containers/pill/antitox( src )
new /obj/item/weapon/reagent_containers/pill/antitox( src )
new /obj/item/weapon/reagent_containers/pill/antitox( src )
return
/obj/item/weapon/storage/firstaid/o2/New()
..()
if (empty) return
new /obj/item/weapon/reagent_containers/pill/dexalin( src )
new /obj/item/weapon/reagent_containers/pill/dexalin( src )
new /obj/item/weapon/reagent_containers/pill/dexalin( src )
new /obj/item/weapon/reagent_containers/pill/dexalin( src )
new /obj/item/weapon/reagent_containers/syringe/inaprovaline( src )
new /obj/item/weapon/reagent_containers/syringe/inaprovaline( src )
new /obj/item/device/healthanalyzer( src )
new /obj/item/weapon/reagent_containers/syringe/inaprovaline( src )
new /obj/item/weapon/reagent_containers/syringe/inaprovaline( src )
new /obj/item/weapon/reagent_containers/pill/dexalin( src )
new /obj/item/weapon/reagent_containers/pill/dexalin( src )
new /obj/item/weapon/reagent_containers/pill/dexalin( src )
new /obj/item/weapon/reagent_containers/pill/dexalin( src )
return
/obj/item/weapon/storage/pill_bottle/kelotane
@@ -122,4 +119,3 @@
new /obj/item/weapon/reagent_containers/pill/inaprovaline( src )
new /obj/item/weapon/reagent_containers/pill/inaprovaline( src )
new /obj/item/weapon/reagent_containers/pill/inaprovaline( src )

View File

@@ -22,20 +22,30 @@
switch(health)
if(100 to INFINITY)
return "health100"
if(70 to 100)
if(90 to 100)
return "health90"
if(80 to 90)
return "health80"
if(50 to 70)
if(70 to 80)
return "health70"
if(60 to 70)
return "health60"
if(30 to 50)
if(50 to 60)
return "health50"
if(40 to 50)
return "health40"
if(18 to 30)
return "health25"
if(5 to 18)
if(30 to 40)
return "health30"
if(20 to 30)
return "health20"
if(10 to 20)
return "health10"
if(1 to 5)
if(0 to 10)
return "health1"
if(-99 to 0)
return "health0"
if(-50 to 0)
return "health-50"
if(-99 to -50)
return "health-99"
else
return "health-100"
return "0"