diff --git a/code/game/data_huds.dm b/code/game/data_huds.dm index 2d97bab7cfc..f77783e66a9 100644 --- a/code/game/data_huds.dm +++ b/code/game/data_huds.dm @@ -139,6 +139,7 @@ var/static/image/medicalnanites_high_image = image('icons/mob/hud.dmi', icon_state = "nanites") var/static/image/medicalnanites_medium_image = image('icons/mob/hud.dmi', icon_state = "nanites_medium") var/static/image/medicalnanites_low_image = image('icons/mob/hud.dmi', icon_state = "nanites_low") + var/static/image/ifosfamide_image = image('icons/mob/hud.dmi', icon_state = "ifosfamide") var/static/image/jellyjuice_image = image('icons/mob/hud.dmi', icon_state = "jellyjuice") var/static/image/russianred_image = image('icons/mob/hud.dmi', icon_state = "russian_red") @@ -153,6 +154,7 @@ var/jellyjuice_amount = reagents.get_reagent_amount(/datum/reagent/medicine/xenojelly) var/medicalnanites_amount = reagents.get_reagent_amount(/datum/reagent/medicalnanites) var/russianred_amount = reagents.get_reagent_amount(/datum/reagent/medicine/russian_red) + var/ifosfamide_amount = reagents.get_reagent_amount(/datum/reagent/medicine/ifosfamide) if(neurotox_amount > 10) //Blinking image for particularly high concentrations xeno_reagent.overlays += neurotox_high_image @@ -177,6 +179,9 @@ else if(sanguinal_amount > 0) xeno_reagent.overlays += sanguinal_image + if(ifosfamide_amount > 0) + xeno_reagent.overlays += ifosfamide_image + if(medicalnanites_amount > 25) xeno_reagent.overlays += medicalnanites_high_image else if(medicalnanites_amount > 15) diff --git a/code/game/objects/items/reagent_containers/pill.dm b/code/game/objects/items/reagent_containers/pill.dm index 3d68c9fadb1..ceabfd17956 100644 --- a/code/game/objects/items/reagent_containers/pill.dm +++ b/code/game/objects/items/reagent_containers/pill.dm @@ -272,3 +272,8 @@ pill_desc = "A sugar pill. Used to prevent hunger." list_reagents = list(/datum/reagent/consumable/sugar = 15) pill_id = 18 + +/obj/item/reagent_containers/pill/ifosfamide + pill_desc = "An Ifosfamide pill. A cytostatic antitumor drug. Quickly heals wounds and burns, but releases histamine. Do not mix with BKT and paracetamol" + list_reagents = list(/datum/reagent/medicine/ifosfamide = 15) + pill_id = 11 diff --git a/code/game/objects/items/storage/firstaid.dm b/code/game/objects/items/storage/firstaid.dm index 19c0fa68a9f..95b2fd7a060 100644 --- a/code/game/objects/items/storage/firstaid.dm +++ b/code/game/objects/items/storage/firstaid.dm @@ -527,6 +527,15 @@ greyscale_config = /datum/greyscale_config/pillbottleround description_overlay = "Su" +/obj/item/storage/pill_bottle/ifosfamide + name = "ifosfamide pill bottle" + desc = "Contains pills of cytostatic antitumor emergency use drug." + icon_state = "pill_canistercomplete" + pill_type_to_fill = /obj/item/reagent_containers/pill/ifosfamide + greyscale_colors = "#9ACD32#ffffff" + greyscale_config = /datum/greyscale_config/pillbottleround + description_overlay = "If" + /obj/item/storage/pill_bottle/happy name = "happy pill bottle" desc = "Contains highly illegal drugs. When you want to see the rainbow." diff --git a/code/game/objects/machinery/vending/marine_vending.dm b/code/game/objects/machinery/vending/marine_vending.dm index bee5af1a8ff..b5c8314a3f0 100644 --- a/code/game/objects/machinery/vending/marine_vending.dm +++ b/code/game/objects/machinery/vending/marine_vending.dm @@ -980,6 +980,7 @@ /obj/item/storage/pill_bottle/kelotane = -1, /obj/item/storage/pill_bottle/tramadol = -1, /obj/item/storage/pill_bottle/tricordrazine = -1, + /obj/item/storage/pill_bottle/ifosfamide = -1, /obj/item/storage/pill_bottle/combatmix = -1, /obj/item/storage/pill_bottle/dylovene = -1, /obj/item/storage/pill_bottle/dexalin = -1, @@ -1028,6 +1029,7 @@ /obj/item/storage/pill_bottle/kelotane = -1, /obj/item/storage/pill_bottle/tramadol = -1, /obj/item/storage/pill_bottle/tricordrazine = -1, + /obj/item/storage/pill_bottle/ifosfamide = -1, /obj/item/storage/pill_bottle/combatmix = -1, /obj/item/storage/pill_bottle/dylovene = -1, /obj/item/storage/pill_bottle/dexalin = -1, @@ -1165,7 +1167,6 @@ "General" = list( /obj/item/clothing/suit/modular = -1, /obj/item/clothing/suit/modular/rownin = -1, - /obj/item/clothing/suit/modular/xenonauten/pilot = -1, /obj/item/facepaint/green = -1, /obj/item/facepaint/sniper = -1, /obj/item/facepaint/black = -1, diff --git a/code/modules/reagents/reagents/medical.dm b/code/modules/reagents/reagents/medical.dm index b7bd7e86990..ff544c8f159 100644 --- a/code/modules/reagents/reagents/medical.dm +++ b/code/modules/reagents/reagents/medical.dm @@ -267,8 +267,6 @@ overdose_threshold = REAGENTS_OVERDOSE*0.5 overdose_crit_threshold = REAGENTS_OVERDOSE_CRITICAL*0.5 scannable = TRUE - purge_list = list(/datum/reagent/medicine/oxycodone) - purge_rate = 0.2 /datum/reagent/medicine/dermaline/on_mob_life(mob/living/L, metabolism) var/target_temp = L.get_standard_bodytemperature() @@ -831,8 +829,6 @@ overdose_threshold = REAGENTS_OVERDOSE*0.5 overdose_crit_threshold = REAGENTS_OVERDOSE_CRITICAL*0.5 scannable = TRUE - purge_list = list(/datum/reagent/medicine/oxycodone) - purge_rate = 0.2 /datum/reagent/medicine/meralyne/on_mob_life(mob/living/L, metabolism) L.heal_overall_damage(2*effect_str, 0) @@ -1537,7 +1533,7 @@ purge_rate = 5 var/absorbtion = 0 var/max_absorbtion = 10 - var/max_reagent = 100 + var/max_reagent = 50 /datum/reagent/medicine/sulfasalazine/on_mob_life(mob/living/L, metabolism) @@ -1547,11 +1543,11 @@ if(absorbtion > 0) absorbtion-- - if (volume > 50 && L.getBruteLoss(organic_only = TRUE) && absorbtion <= 0) + if (volume > 5 && L.getBruteLoss(organic_only = TRUE) && absorbtion <= 0) L.heal_overall_damage(4*effect_str, 0) holder.remove_reagent(/datum/reagent/medicine/sulfasalazine, 3.5) - if (volume > 50 && L.getFireLoss(organic_only = TRUE) && absorbtion <= 0) + if (volume > 5 && L.getFireLoss(organic_only = TRUE) && absorbtion <= 0) L.heal_overall_damage(0, 4*effect_str) holder.remove_reagent(/datum/reagent/medicine/sulfasalazine, 3.5) @@ -1563,3 +1559,70 @@ absorbtion = min(absorbtion + purge, max_absorbtion) return ..() + +/datum/reagent/histamine + name = "Histamine" + description = "Histamine is an organic nitrogenous compound involved in local immune responses communication" + color = COLOR_REAGENT_BICARIDINE + custom_metabolism = 0 + overdose_threshold = REAGENTS_OVERDOSE * 0.5 + overdose_crit_threshold = REAGENTS_OVERDOSE_CRITICAL * 0.5 + purge_list = list( + /datum/reagent/medicine/bicaridine, + /datum/reagent/medicine/kelotane, + /datum/reagent/medicine/tricordrazine, + /datum/reagent/medicine/paracetamol, + ) + purge_rate = 5 + scannable = TRUE + +/datum/reagent/histamine/on_mob_life(mob/living/L, metabolism) + if(!L.reagents.get_reagent_amount(/datum/reagent/medicine/ifosfamide)) + holder.remove_reagent(/datum/reagent/histamine, 0.4) + + L.apply_damage(0.5*effect_str, OXY) + + return ..() + +/datum/reagent/histamine/on_mob_add(mob/living/L, metabolism) + to_chat(L, span_userdanger("You feel your throat tightening!")) + +/datum/reagent/histamine/on_mob_delete(mob/living/L, metabolism) + to_chat(L, span_userdanger("You feel how it becomes easier for you to breathe.")) + +/datum/reagent/histamine/overdose_process(mob/living/L, metabolism) + L.apply_damages(1 * effect_str, 1 * effect_str, 1 * effect_str) + +/datum/reagent/histamine/overdose_crit_process(mob/living/L, metabolism) + L.apply_damages(0, 0, 6 * effect_str) + +/datum/reagent/medicine/ifosfamide + name = "ifosfamide" + description = "Ifosfamide is a cytostatic antitumor drug." + color = COLOR_REAGENT_BICARIDINE + custom_metabolism = REAGENTS_METABOLISM * 2 + overdose_threshold = REAGENTS_OVERDOSE * 0.5 + overdose_crit_threshold = REAGENTS_OVERDOSE_CRITICAL * 0.5 + scannable = TRUE + +/datum/reagent/medicine/ifosfamide/on_mob_life(mob/living/L, metabolism) + + L.adjustOxyLoss(-0.5 * effect_str) + L.adjustToxLoss(-0.5 * effect_str) + L.heal_overall_damage(4 * effect_str, 4 * effect_str) + + if(volume > 5) + L.reagent_pain_modifier -= PAIN_REDUCTION_MEDIUM + else + L.reagent_pain_modifier -= PAIN_REDUCTION_LIGHT + + L.reagents.add_reagent(/datum/reagent/histamine, 0.4) + + purge(L) + current_cycle++ + +/datum/reagent/medicine/ifosfamide/overdose_process(mob/living/L, metabolism) + L.adjustToxLoss(2*effect_str) + +/datum/reagent/medicine/ifosfamide/overdose_crit_process(mob/living/L, metabolism) + L.adjustToxLoss(4*effect_str) diff --git a/icons/mob/hud.dmi b/icons/mob/hud.dmi index bca736b6109..cf5c5f5c821 100644 Binary files a/icons/mob/hud.dmi and b/icons/mob/hud.dmi differ